- 100-continue 是用于客户端在发送 post 数据给服务器时,征询服务器情况,看服务器是否处理 post 的数据,如果不处理,客户端则不上传 post 是数据,反之则上传。在实际应用中,通过 post 上传大数据时,才会使用到 100-continue 协议。
- 客户端策略
- 如果客户端有 post 数据要上传,可以考虑使用 100-continue 协议。在请求头中加入 {“Expect”:”100-continue”}
- 如果没有 post 数据,不能使用 100-continue 协议,因为这会让服务端造成误解。
- 并不是所有的 Server 都会正确实现 100-continue 协议,如果 Client 发送 Expect:100-continue 消息后,在 timeout 时间内无响应,Client 需要立马上传 post 数据。
- 有些 Server 会错误实现 100-continue 协议,在不需要此协议时返回 100,此时客户端应该忽略。
- 服务端策略
- 正确情况下,收到请求后,返回 100 或错误码。
- 如果在发送 100-continue 前收到了 post 数据(客户端提前发送 post 数据),则不发送 100 响应码(略去)。
参考RFC文档:http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3
转载自 http://www.cnblogs.com/tekkaman/archive/2013/04/03/2997781.html