避免HEAD响应中的内容长度

时间:2015-01-09 20:03:02

标签: http http-headers

对于正常的HEAD请求(例如,当处理动态生成的资源时),Content-Length响应头通常很昂贵,但可能基本上是" free"在完成生成GET响应主体所需的工作之后。

当在响应GET请求时提供Content-Length(而不是分块响应)是合理的,但是对于相应的HEAD请求计算Content-Length是不合理或慢的,是否允许HEAD响应到:

  • 完全省略Content-Length标题?
  • 即使GET响应有Transfer-Encoding: chunked
  • ,也会回复Content-Length

relevant W3C specification表示HEAD请求"应该" ("必须")回复相同的标题;在GET响应中使用Content-Length值得违反上述" SHOULD"是否是清洁度,并且通常是次要的,总传输大小节省。在HEAD的情况下,或者是两个响应都发送Transfer-Encoding: chunked标题的唯一合理选择?

1 个答案:

答案 0 :(得分:4)

感谢来自@ julian-reschke的提示,rfc-7231表示:

  

服务器应该发送相同的头字段以响应HEAD请求,如果请求是GET,它将发送,除了可以省略有效负载头字段(第3.3节)。

同一文档的每section 3.3,有效负载标头字段包括:

  • 的Content-Length
  • 内容型
  • 拖车
  • 传送编码