首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >服务器在收到整个请求之前发送HTTP响应是否可接受?

服务器在收到整个请求之前发送HTTP响应是否可接受?
EN

Stack Overflow用户
提问于 2013-01-10 12:48:23
回答 1查看 8.9K关注 0票数 48

考虑一个大的HTTP请求:

代码语言:javascript
复制
POST /upload HTTP/1.1
Content-Type: multipart/form-data
Content-Length: 1048576

...

客户端现在开始上传一兆字节的数据,这可能需要一段时间。但是,服务器确定需要超文本传输协议授权,因此它决定使用HTTP 401 Unauthorized进行响应。

服务器必须等到收到整个请求(IE、headers + CRLF CRLF + Content-Length字节)才能响应吗?

实际上,这样的行为会破坏任何浏览器吗?浏览器是否会继续上传文件,或者如果收到“过早”的响应,它们是否会停止传输?

更重要的是,在这种情况下,他们是否能够成功进行身份验证并再次开始上传(使用凭据),或者像这样切断上传是不可靠的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 23:59:53

查看RFC 2616,它定义了协议,在8.2.2节监控错误状态消息的连接中,它指出

发送消息体的HTTP/1.1 (或更高版本)客户端应该在发送请求时监视网络连接的错误状态。如果客户端看到错误状态,它应该立即停止传输正文。

所以我会说,使用你可以跳转到一个发送401错误。然后查看10.4.2 401未授权

请求需要用户身份验证。响应必须包括WWW-Authenticate报头字段(第14.47节),其中包含适用于所请求资源的质询。客户端可以用适当的授权报头字段重复该请求

声明客户端可以使用合适的凭据重试。

然而,我并没有做任何实验来观察浏览器的实际表现。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14250991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档