HTTP 100和200状态代码有什么区别?

时间:2014-07-17 08:56:22

标签: http error-handling

HTTP 100200状态代码有什么区别?

他们是一样的吗?

有人告诉我,200是HTTP请求成功时的标准代码,没有任何错误。

是吗?

这个100代码怎么样?我在这个状态代码上找到了不同的解释。有人可以用一些现实世界的例子来解释吗?

因为现在我不知道差异,两者似乎对我来说都是一样的。

2 个答案:

答案 0 :(得分:1)

来自:http://www.rfc-editor.org/rfc/rfc7231.txt

6.2.1。 100继续

100(继续)状态代码表示a的初始部分    请求已收到并且尚未被拒绝    服务器。服务器打算在发送后发送最终响应    请求已被完全接收并采取行动。

当请求包含包含a的Expect标头字段时    100-继续期望,100响应表示服务器    希望接收请求有效载荷主体,如中所述    第5.1.1节。客户端应该继续发送请求和    放弃100回应。

如果请求不包含包含的Expect标头字段    100-继续期望,客户可以简单地丢弃此临时    响应。

(编辑,谢谢Julian注意到:)

答案 1 :(得分:0)

让我给你举个例子:

您正在使用 PUT request 将大型对象发送到服务器,您可能会包括这样的 Expect header

PUT /media/file.mp4  HTTP/1.1
Host: api.example.org
Content-Length: 1073741824
Expect: 100-continue

这告诉服务器,如果服务器将要接受请求,则应使用 100继续状态代码进行响应:

HTTP/1.1 100 Continue

当客户端收到此消息时,它告诉客户端服务器将接受请求,并且可能开始发送请求正文。

最大的优点是,如果请求存在问题,服务器可以在客户端开始发送请求正文之前立即响应错误。

简单用例是服务器可能首先需要使用 401未经授权进行身份验证,或者它可能预先知道 Content-Type 客户端要发送到服务器的内容不是服务器要接受的内容。

主要引用自:

https://evertpot.com/http/100-continue/

https://tools.ietf.org/html/rfc7231#section-5.1.1