100-continue在PUT请求中意味着什么?

use*_*949 5 http

我看到Expect:100-continue在某个PUT请求(上传文件)中,这是什么意思?

Wil*_*ung 12

应该发生什么,是你应该发送请求标头:

Expect: 100-continue
Run Code Online (Sandbox Code Playgroud)

头.然后,在您发送标头之后,但在发送有效负载之前,您应该检查是否收到100响应或417响应.如果您收到100响应,则可以继续发送有效负载.如果你不这样做,你应该停下来.

前提是当你准备好发送10GB文件时,这让服务器有机会说"Hold on,cowboy",然后你可以比服务器更优雅地处理这个过程,只需关闭你的插座.

事实上,你得到100回,并且你并没有期待它,你说你可能得到了100和200(或其他)的回应.在发送标题后,100发送给您,然后在请求完成时发送最终响应.

你没注意它真的是一个细节.

但是,理想情况下,将来您的处理可以考虑正确的中间请求响应.

如果您没有发送Expect标头,服务器不应该向您发送100,因为您没有告诉它您将要处理它.如果您发送Expect标头,则100不应该出乎意料.

  • 2次更正.1)RFC 2616说有一个例外,对于PUT和POST请求,即使没有从客户端发送expecter头,服务器也可以继续发送100.2)417表示服务器不理解期望标头,客户端应重试没有期望标头.如果服务器回复其他错误代码,例如实体太大,则客户端不应再次发送请求. (2认同)