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

另见