協(xié)議狀態(tài)碼-1XX
Http 協(xié)議根據(jù)場(chǎng)景約定了一系列請(qǐng)求返回的狀態(tài)碼,方便對(duì)請(qǐng)求結(jié)果進(jìn)行細(xì)粒度管理。該狀態(tài)碼由互聯(lián)網(wǎng)號(hào)碼分配局維護(hù)管理。狀態(tài)碼是由3位數(shù)字組成,目前總共分為 5 大類,在接下來(lái)的章節(jié)中將逐一詳細(xì)介紹。
1. 請(qǐng)求狀態(tài)5大類
- 1xx:消息;
- 2xx:成功;
- 3xx:重定向;
- 4xx:客戶端錯(cuò)誤;
- 5xx:服務(wù)器錯(cuò)誤。
2. 1xx 狀態(tài)
1xx
表示的是請(qǐng)求還未完成,中間需要跟客戶端協(xié)商信息。
2.1 100 Continue
初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。在請(qǐng)求首部字段的小節(jié)中有個(gè) Expect
字段。
Expect: 100-continue
此時(shí),如果服務(wù)器愿意接受,就會(huì)返回 100 Continue 狀態(tài)碼,反之則返回 417 Expectation Failed 狀態(tài)碼。場(chǎng)景可以用于,請(qǐng)求體比較大又不確定服務(wù)的能不能處理,可以先這樣嘗試詢問(wèn)下,待服務(wù)端接收后才發(fā)送正式大請(qǐng)求體。
2.2 101 Switching Protocols
服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議。常見(jiàn)的就是 Websocket 連接。
客戶端
GET /websocket HTTP/1.1
Host: www.imocc.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
客戶端請(qǐng)求要將原本是 HTTP/1.1 協(xié)議升級(jí)成 Websocket 協(xié)議。
服務(wù)端
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
服務(wù)端返回 101 代表協(xié)議轉(zhuǎn)換成功。
2.3 102 Processing
由 WebDAV(RFC 2518)擴(kuò)展的狀態(tài)碼,代表處理將被繼續(xù)執(zhí)行。跟 100 Continue
狀態(tài)類似,只是 100
的情況會(huì)立即返回,而 102
的狀態(tài)則需要等待比較久的時(shí)間,規(guī)定一般是超過(guò) 20s 以上。