HTTP/1.1 302到底意味着什么?

omg*_*omg 111 redirect http http-headers http-status-code-302

我读过的一篇文章说过,它意味着跳跃(从一个URI跳到另一个URI),但即使实际上根本没有跳跃,我也发现了这个"302"!

Cod*_*313 72

302重定向意味着页面被临时移动,而301意味着它被永久移动.

301s对SEO值有好处,而302则不是因为301s指示客户忘记原始URL的值,而302保留原始值的值,因此可能通过创建两个逻辑上不同的URL来降低值每个产生相同的内容(搜索引擎将它们视为不同的重复,而不是具有两个名称的单个资源).


cas*_*lin 50

自2014年6月起,RFC 2616已过时,不得再用作参考.在RFC 7231是用于语义和HTTP/1.1协议的内容的当前参考.

响应302是执行URL重定向的常用方法.与302状态代码一起,响应应包含302具有不同URI 的标头.这样的标头将由用户代理读取,然后执行重定向:


重定向示例


Web浏览器可能会在后续请求中更改LocationPOST.如果不希望出现此行为,GET则可以使用(临时重定向)状态代码.

这是RFC 7231中307定义状态代码的方式:

6.4.3.302找到

302(实测值)状态代码表示目标资源下不同的URI临时驻留.由于重定向有时可能会被更改,因此客户端应该继续使用有效请求URI来处理将来的请求.

服务器应该302在响应中生成一个头字段,其中包含不同URI的URI引用.用户代理可以使用Location字段值进行自动重定向.服务器的响应有效负载通常包含一个短超文本注释,其中包含指向不同URI的超链接.

注意:由于历史的原因,用户代理可以从改变请求方法LocationPOST用于随后的请求.如果不希望出现此行为,GET则可以使用(临时重定向)状态代码.

根据Mozilla的MDN Web文档,一个典型的用例307是:

由于未曾无法预料的原因,网页暂时无法使用.这样,搜索引擎就不会更新他们的链接.

重定向的其他状态代码

RFC 7231定义了重定向以下状态代码:

  • 302 (永久移动)
  • 301 (实测值)
  • 302 (临时重定向)

RFC 7238的建立是为了定义重定向另一个状态码:

  • 307 (永久重定向)

有关更多详细信息,请参阅此答案.

  • 好吧,我两天的痛苦已经结束了(`Location` 标题对我有帮助)。结果我用`http`调用了一个服务,他们转移到`https`,我得到的响应是`302`,只要我在这里读到`Location`标头,我就看到了`http/https`的区别. 谢谢! (3认同)

Red*_*ard 23

查看HTTP 301与302重定向的简单方法是:

假设您有" http://sample.com/sample " 的书签.您使用浏览器去那里.

此时,302重定向到其他网址意味着您应将书签保持为" http://sample.com/sample ".这是因为目标URL将来可能会更改.

301重定向到不同的URL意味着您的书签应该更改为指向新URL,因为它是永久重定向.


小智 10

RFC 2616(超文本传输​​协议规范):

10.3.3 302 Found

   The requested resource resides temporarily under a different URI.
   Since the redirection might be altered on occasion, the client SHOULD
   continue to use the Request-URI for future requests.  This response
   is only cacheable if indicated by a Cache-Control or Expires header
   field.

   The temporary URI SHOULD be given by the Location field in the
   response. Unless the request method was HEAD, the entity of the
   response SHOULD contain a short hypertext note with a hyperlink to
   the new URI(s).

资源:

http://www.ietf.org/rfc/rfc2616.txt


Pau*_*ier 6

维基百科

HTTP响应状态代码302 Found是执行重定向的最常用方法。这是与标准相矛盾的工业实践的一个例子。


Mit*_*nna 5

根据http状态代码定义,302表示(临时)重定向."请求的资源暂时驻留在不同的URI下"


Dem*_*emi 5

302是表示资源位置变化的响应 - "Found".

资源现在应该位于的URL应位于响应"位置"标题中.

"跳转"应由请求客户端完成(在响应位置头字段中向资源URL发出新请求).


小智 5

在SEO方面,301和302都很好,这取决于情况,

如果只能返回一个版本(即,另一个版本重定向到它),那太好了!此行为是有益的,因为它减少了重复内容.在重定向到斜杠网址的特定情况下,我们的搜索结果可能会显示带有200响应代码的URL版本(通常是尾随斜杠网址) - 无论重定向是301还是302.