协议状态码-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 以上。