考虑一个大的HTTP请求:
POST /upload HTTP/1.1
Content-Type: multipart/form-data
Content-Length: 1048576
...
客户端现在开始上传一兆字节的数据,这可能需要一段时间。但是,服务器确定需要超文本传输协议授权,因此它决定使用HTTP 401 Unauthorized
进行响应。
服务器必须等到收到整个请求(IE、headers + CRLF CRLF + Content-Length
字节)才能响应吗?
实际上,这样的行为会破坏任何浏览器吗?浏览器是否会继续上传文件,或者如果收到“过早”的响应,它们是否会停止传输?
更重要的是,在这种情况下,他们是否能够成功进行身份验证并再次开始上传(使用凭据),或者像这样切断上传是不可靠的吗?
发布于 2013-01-23 23:59:53
查看RFC 2616,它定义了协议,在8.2.2节监控错误状态消息的连接中,它指出
发送消息体的HTTP/1.1 (或更高版本)客户端应该在发送请求时监视网络连接的错误状态。如果客户端看到错误状态,它应该立即停止传输正文。
所以我会说,使用你可以跳转到一个发送401错误。然后查看10.4.2 401未授权
请求需要用户身份验证。响应必须包括WWW-Authenticate报头字段(第14.47节),其中包含适用于所请求资源的质询。客户端可以用适当的授权报头字段重复该请求
声明客户端可以使用合适的凭据重试。
然而,我并没有做任何实验来观察浏览器的实际表现。
https://stackoverflow.com/questions/14250991
复制相似问题