Expect header
HTTP Expect 請求頭表示伺服器需要滿足一些預期才能成功處理整個請求。
當請求包含 Expect: 100-continue 頭時,伺服器會發送一個 100 Continue 響應,表明伺服器已準備好或能夠接收請求的其餘內容。如果客戶端預期可能會發生錯誤(例如,在沒有預先驗證的身份驗證憑據的情況下發送狀態更改操作),等待 100 響應會很有幫助。
如果伺服器無法滿足預期,則返回 417 Expectation Failed 響應,否則返回其他狀態(例如,客戶端錯誤返回 4XX 狀態,如果請求無需進一步處理即可成功解決則返回 2XX 狀態)。
大多數常見的瀏覽器不會發送 Expect 頭,但某些客戶端(命令列工具)會預設傳送。
語法
http
Expect: 100-continue
指令
只定義了一個預期
100-continue-
通知接收方客戶端即將在此請求中傳送一個(可能很大的)訊息主體,並希望收到
100 Continue臨時響應。
示例
大型訊息體
客戶端傳送帶有 Expect 頭的請求,並在傳送訊息主體之前等待伺服器響應。
http
PUT /somewhere/fun HTTP/1.1
Host: origin.example.com
Content-Type: video/h264
Content-Length: 1234567890987
Expect: 100-continue
伺服器檢查請求頭並生成響應,其中 100 Continue 指示客戶端傳送訊息主體。
http
HTTP/1.1 100 Continue
客戶端透過傳送實際資料來完成請求
http
[Video data as content for PUT request]
規範
| 規範 |
|---|
| HTTP 語義 # field.expect |