什么表示HTTP响应结束,没有Content-Length
标题?
我已经读过,在某些情况下,该服务器会关闭TCP连接。但我已经目睹了在收到所有响应后TCP连接存在的情况。
因此,在以下情况下出现了一个重大问题:
Content-Length
标题在这种情况下,浏览器如何知道它可以使用相同的TCP连接? 服务器可能会发送更多与第一个HTTP请求相关的内容,这些内容会与第二个HTTP响应混淆。
答案 0 :(得分:4)
如果客户端和服务器都支持HTTP 1.1,并且服务器事先不知道响应主体大小(因此无法发送Content-Length
响应头),则服务器应使用chunked encoding ,即使服务器在发送响应后没有立即关闭TCP连接,也允许客户端找到响应主体的末尾。
如果无法使用HTTP 1.1(因为客户端或服务器太旧),则无法使用分块编码,在这种情况下,发送不带Content-Length
标头的响应会阻止服务器保留TCP连接持久。