根据RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html:
HEAD方法与GET相同,只是服务器不能在响应中返回消息体。响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同。该方法可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身。此方法通常用于测试超文本链接的有效性,可访问性和最近的修改。
对HEAD请求的响应可以是可缓存的,因为响应中包含的信息可用于从该资源更新先前缓存的实体。如果新字段值指示缓存的实体与当前实体不同(如Content-Length,Content-MD5,ETag或Last-Modified中的更改所示),则缓存必须将缓存条目视为陈旧。
根据这个定义,我们是否必须返回200
,例如相应的GET操作,我们是否应该返回204
,因为没有内容?
就个人而言,我认为更好的解释是使用204
状态代码。你的解释是什么?
答案 0 :(得分:15)
请参阅Section 10,其中介绍了状态代码。代码200
的说明包含示例,其中包含HEAD
。显然他们打算HEAD
请求应该返回此代码。
204
的说明解释了目的:
此响应主要是为了允许在不引起用户代理的活动文档视图更改的情况下进行操作的输入,尽管任何新的或更新的元信息应该应用于当前在用户代理的活动视图中的文档。