协议状态码-1XX
Http 协议根据场景约定了一系列请求返回的状态码,方便对请求结果进行细粒度管理。该状态码由互联网号码分配局维护管理。状态码是由3位数字组成,目前总共分为 5 大类,在接下来的章节中将逐一详细介绍。
1. 请求状态5大类
- 1xx:消息;
- 2xx:成功;
- 3xx:重定向;
- 4xx:客户端错误;
- 5xx:服务器错误。
2. 1xx 状态
1xx
表示的是请求还未完成,中间需要跟客户端协商信息。
2.1 100 Continue
初始的请求已经接受,客户应当继续发送请求的其余部分。在请求首部字段的小节中有个 Expect
字段。
Expect: 100-continue
此时,如果服务器愿意接受,就会返回 100 Continue 状态码,反之则返回 417 Expectation Failed 状态码。场景可以用于,请求体比较大又不确定服务的能不能处理,可以先这样尝试询问下,待服务端接收后才发送正式大请求体。
2.2 101 Switching Protocols
服务器将遵从客户的请求转换到另外一种协议。常见的就是 Websocket 连接。
客户端
GET /websocket HTTP/1.1
Host: www.imocc.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
客户端请求要将原本是 HTTP/1.1 协议升级成 Websocket 协议。
服务端
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
服务端返回 101 代表协议转换成功。
2.3 102 Processing
由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。跟 100 Continue
状态类似,只是 100
的情况会立即返回,而 102
的状态则需要等待比较久的时间,规定一般是超过 20s 以上。
最新评论
徒弟可以A师傅,学生可以A老师,为什么外包不能A正式,我觉得很正常。异性相吸这是宇宙真理
PHP天下第一(狗头叼花)
第一个不需要关注公主号直接给激活码的帖子!
客户端超时断开后,服务端如果没有设置超时机制,那也会继续等待处理,万一这期间有消息到了,那不是就接受到消息处理了,但是也没有办法返回到客户端,导致消息丢失。
企业级GO项目开发实战 Kubernetes权威指南 第六版
https://pan.baidu.com/s/1q3bnTncIACKoTZFxvx7BQw?pwd=ii7n
RabbitMQ精讲,项目驱动落地,分布式事务拔高 有吗?
Spring Cloud Alibaba 微服务架构实战 https://pan.baidu.com/s/1jF5voFRoeF0lYAzAPBWSbw?pwd=chqk