【问题标题】:HTTP HEAD and GET different resultHTTP HEAD 和 GET 不同的结果
【发布时间】:2013-03-18 13:14:09
【问题描述】:

HEADGET 方法是否应该返回相同的状态码?更具体地说,我们遇到了这样一种情况,当我们执行 HEAD 时,客户端网站返回 200,但在执行 GET 时返回 303。它与根据位置重定向到特定语言的页面有关,但 HEAD 不应该也要求您重定向吗?

【问题讨论】:

  • 这实际上取决于重定向的设置方式。如果重定向设置为仅响应 GET 请求,则 HEAD 请求不会重定向。

标签: http http-headers


【解决方案1】:

但 HEAD 不应该也要求您重定向吗?

关键是SHOULD这个词。来自HTTP method specification, RFC2616

9.4 头部

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

SHOULD 这个词在RFC2119 中进一步定义:

SHOULD 这个词或形容词“推荐”的意思是 在特定情况下可能存在忽略 特定项目,但必须了解全部含义并 在选择不同的课程之前仔细权衡。

所以,你描述的情况是合法的,但不推荐。您可能想向网站维护者询问此路径的原因。

【讨论】:

  • 谢谢,我就是这么想的。我SHOULD 询问他们的理由;-)
  • @BalusC 这就是precise 答案的样子。 +1。
猜你喜欢
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2019-05-16
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多