HEAD标头与GET,分块传输不同

时间:2014-05-08 08:37:49

标签: http standards haproxy

正在测试的Web应用程序以奇怪的方式运行。 HEAD请求会返回标头Content-Length,但后续GET会返回Transfer-Encoding: chunked。我希望标题相等,RFC says SHOULD,所以我的问题是:这种行为的合法性和常见程度如何?

UPDATE 事实证明,问题的根本原因是HAProxy的行为。如果这是HEAD请求,则响应将按原样从下面的应用程序传播。但是对于GET,它应用压缩并设置分块传输。我将这个问题作为一个偏离主题关闭,也许会在ServerFault上询问。

2 个答案:

答案 0 :(得分:1)

如果服务器对GET使用chunked编码,但是为HEAD返回Content-Length,则这是IMHO,表明为HEAD返回的信息不太可能是正确的。

答案 1 :(得分:0)

HEAD方法响应不返回实体主体,但GET响应实体主体,如果HTTP服务器启用了"Chunked transfer encoding"则不发送{{1}在响应中因为未使用,服务器在开始向客户端发送响应之前不需要知道内容的长度。在知道该内容的总大小之前,服务器可以开始将动态生成的内容发送到客户端。也许这是最可能的解释。