查询有关 HTTP headers 和 HTTP 响应状态

Query regarding HTTP headers and HTTP response status

我正在尝试构建 REST 服务,但有几个问题。

  1. 当我发送 Location header 时是否需要 body?
  2. If-modified-since:此 header 值是否可以设置为 null 或未设置为指示 PUTDELETE 调用中的任何最新版本?
  1. 不,Location header 不需要 body 内容。事实上,如果响应的状态代码是 302 Found 或类似的重定向,body 内容将毫无意义。
  2. header If-modified-since 是 HTTP 概念的一部分 'Conditional GET'。如果未设置并且未设置作为此概念一部分的其他 header (If-MatchIf-None-MatchIf-Unmodified-Since),则服务器应 return 当前资源的表示。

其实Conditional GET并不是版本的概念,而是缓存的概念。如果客户端已经知道仍然是 up-to-date 的资源表示,那么服务器再次 return 相同的表示将是多余的。