2013-07-07 65 views
1

什么表示HTTP响应结束,而没有Content-Length标头?HTTP响应结束

我读过,在某些情况下,该服务器关闭TCP连接。但我目睹了TCP连接在收到所有响应后存在的情况。

  • 没有一个Content-Length首部接收所有的HTTP响应
  • 浏览器希望使用在同一个TCP连接后
  • TCP连接存在:

    所以,当一个主要问题出现为了发送更多的HTTP请求

在这种情况下,浏览器如何知道它可以使用相同的TCP连接? 服务器可能会发送更多与第1个HTTP请求相关的内容,并且会与第2个HTTP响应混淆。

回答

3

如果客户端和服务器都支持HTTP 1.1,并且服务器事先不知道响应主体大小(因此无法发送Content-Length响应标头),则服务器应该使用chunked encoding,它允许客户端查找即使服务器在发送响应后没有立即关闭TCP连接,响应主体的结尾也是如此。

如果无法使用HTTP 1.1(因为客户端或服务器太旧),则不能使用分块编码,并且在这种情况下发送没有Content-Length标头的响应会阻止服务器保持TCP连接持久化。