按照RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html:HTTP HEAD动词的状态码
HEAD方法是相同,除了在应答服务器不能返回一个消息体得到的。响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求发送的信息相同。此方法可用于获取有关请求隐含的实体的元信息,而无需传递实体主体本身。此方法通常用于测试超文本链接的有效性,可访问性和最近的修改。
对HEAD请求的响应可能是可缓存的,因为响应中包含的信息可能用于从该资源更新先前缓存的实体。如果新字段值指示缓存实体与当前实体不同(如将通过Content-Length,Content-MD5,ETag或Last-Modified中的更改所指示的那样),则缓存必须将缓存条目视为陈旧。
从这个定义,我们应该回到200
如相应的GET动作,我们应该要回归204
因为没有内容?
就我个人而言,我认为更好的解释是使用204
状态码。你的解释是什么?
看起来足够清楚:如果您的GET将返回'200',则返回200作为'HEAD'。如果你的'GET'返回204,你将返回204.有什么问题? – 2013-11-01 00:29:53
问题如下: 'GET'操作不应返回'204',因为如果资源/集合存在,则会出现内容。 但是,由于'HEAD'内容必须为空,状态码将为'204'。顺便说一句,从定义中注意这个_SHOULD_项:_a HEAD请求**应该与为响应GET请求而发送的信息相同。因此,这个不同的状态码可能是'GET'和'HEAD'之间的唯一区别头。 – Doug
是的,204的意图是不符合它的标题“无内容”。国际海事组织它的名字很差,但我怀疑我会想出更好的东西。 – aaaaaa