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 |