最近我试图通过HTTP浏览器上传大文件(数百兆字节)。请求完成可能需要很长时间,因此浏览器(Chrome 43)似乎在大约5分钟后没有收到我服务器的响应时断开连接。我了解并确认,如果我只是在HTTP响应中流式换行,浏览器就不会断开连接,并且我的上传在大约10分钟后成功。
我想使用这个技巧来防止断开连接,但我认为这意味着我必须在流式传输新行之前设置我的HTTP响应和标头。如果请求中出现问题,我仍然可以设置201,202,400,500等状态代码。
我在想我可能会在新行前面添加HTTP标头,然后发送标头,然后发送响应。这是允许/所有浏览器都支持吗?如果没有,是否有更好的方法来防止断开连接?
答案 0 :(得分:0)
the specification似乎不允许这样做:
6.1状态行
响应消息的第一行是状态行,由协议版本后跟数字状态代码及其关联的文本短语组成,每个元素由SP字符分隔。除最终的CRLF序列外,不允许使用CR或LF。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
虽然我仍然很好奇浏览器是否忽略了这一点并且无论如何都要修剪前导空格。