0

http 规范说明了 HEAD 请求:

HEAD 方法与 GET 相同,只是服务器不能在响应中返回消息体。响应 HEAD 请求的 HTTP 标头中包含的元信息应该与响应 GET 请求发送的信息相同。

还有:_

Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。

那么如果请求的资源是动态生成的,对于HEAD请求,资源是否也会生成呢?应该有Content-Length标题或Transfer-Encoding: chunked标题吗?

(我觉得这是关于如何实现HTTP协议的。)

加 1

我没有看到规范要求whether to发送 Content-Length 标头或how to将其发送给动态生成的资源。Content-Length这样的动态资源将使用分块传输编码发送,如果使用方法访问,则不会有标头GET。因此,如果 HEAD 响应应该模仿 GET 响应,则也不应发送 Contnet-Length。

4

1 回答 1

1

a) 那不是 HTTP 规范。它是 1999 年现已过时的 RFC 2616 的 W3C 副本。

b) 有关当前规范,请参阅https://greenbytes.de/tech/webdav/rfc7231.html#HEAD

回答您的问题:如果您不知道有效负载大小而不实际生成它,那么不在 HEAD 响应中发送 Content-Length 是可以的。

于 2016-06-24T09:46:29.077 回答