如果没有Content-Length或Transfer-encoding,对GET请求的HTTP响应会发生什么?

时间:2015-05-20 03:43:35

标签: http http-headers

如果对GET请求的响应没有Content-Length或Transfer-encoding:chunked字段,会发生什么?客户如何知道消息何时结束?

2 个答案:

答案 0 :(得分:1)

RFC 7230 section 3.3.3包含一个很好的条件清单,用于查找邮件正文大小。基本上它说答案取决于状态代码是什么。相关条件为#1和#7。

  

“1。任何回复......用1xx          (信息),204(无内容)或304(未修改)状态          代码总是在第一个空行后终止          标题字段,无论标题字段是否存在          消息,因此不能包含消息体。“

     

“7。否则,这是没有声明消息的响应消息          体长,所以消息体长度由          在服务器关闭之前收到的八位字节数          连接“。

还值得知道消息可能在身体部分结束后继续。 RFC 7230 section 4.4定义了预告片功能,其中有效负载可能后跟第二组mime标头。如果存在,则消息将在他们所在的位置结束。

答案 1 :(得分:0)

根据specification

  

邮件正文的长度由以下之一决定(in   优先顺序):

     
      
  • [...]
  •   
  • 否则,这是一条没有声明消息体长度的响应消息,因此消息体长度由服务器关闭连接之前收到的八位字节数决定。
  •   

客户端需要检测连接是否已关闭。