http spec说明了HEAD请求:
HEAD方法与GET相同,只是服务器不能 在响应中返回一个消息体。元信息包含 在HTTP头中响应HEAD请求应该是相同的 响应GET请求而发送的信息。
also:
Content-Length实体标题字段指示的大小 entity-body,以十进制数字表示的OCTET,发送给收件人或者 HEAD方法的情况,即实体的大小 如果请求是GET,则已被发送。
因此,如果动态生成所请求的资源,对于HEAD
请求,是否会生成资源 ALSO ?是否应该有Content-Length
标题或Transfer-Encoding: chunked
标题?
(我觉得这是关于如何实现HTTP协议的。)
我没有看到规范要求whether to
发送Content-Length标头或how to
发送动态生成的资源。这种动态资源将与分块传输编码一起发送,如果使用Content-Length
方法访问,则不会有GET
头。因此,如果HEAD响应应该模仿GET响应,则不应发送Contnet-Length。
答案 0 :(得分:1)
a)这不是HTTP规范。它是1999年过时的RFC 2616的W3C副本。
b)有关当前规范,请参阅https://greenbytes.de/tech/webdav/rfc7231.html#HEAD
回答你的问题:如果你不知道有效载荷大小而没有实际生成它,那么在HEAD响应中不发送Content-Length就可以了。