根据RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html:
HEAD 方法与 GET 相同,只是服务器不得在响应中返回消息正文。响应 HEAD 请求的 HTTP 标头中包含的元信息应与响应 GET 请求时发送的信息相同。此方法可用于获取有关请求所隐含的实体的元信息,而无需传输实体主体本身。此方法通常用于测试超文本链接的有效性、可访问性和最近修改。
对 HEAD 请求的响应可能是可缓存的,因为响应中包含的信息可用于从该资源更新以前缓存的实体。如果新字段值指示缓存的实体与当前实体不同(如内容长度、内容 MD5、ETag 或上次修改时间的更改所示),则缓存必须将缓存条目视为过时。
根据这个定义,我们是否应该返回200
,例如相应的GET操作,我们是否应该返回204
因为没有内容?
就个人而言,我认为更好的解释是使用204
状态代码。你的解释是什么?
请参阅第 10 节,其中描述了状态代码。代码200
的描述包括示例,它们包括HEAD
。所以很明显,他们打算HEAD
请求应该返回此代码。
204
的描述解释了目的:
此响应主要用于允许在不导致用户代理的活动文档视图更改的情况下执行操作的输入,尽管任何新的或更新的元信息都应应用于当前在用户代理的活动视图中的文档。