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

时间:2009-06-10 00:06:07

标签: http redirect http-headers http-status-code-302

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

16 个答案:

答案 0 :(得分:67)

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

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

答案 1 :(得分:40)

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

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


Redirection example


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

这就是302中<{3}}状态代码的定义方式:

  

RFC 7231

     

302(已找到)状态代码表示目标资源      暂时驻留在不同的URI下。自重定向      有时可能会改变,客户应该继续使用      未来请求的有效请求URI。

     

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

     

注意:由于历史原因,用户代理可以更改请求         从POSTGET的方法,用于后续请求。如果这         行为是不受欢迎的,307(临时重定向)状态代码         可以改为使用。

根据6.4.3. 302 FoundMDN web docs from Mozilla的典型用例是:

  

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

重定向的其他状态代码

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

创建307以定义另一个重定向状态代码:

有关详细信息,请参阅此308

答案 2 :(得分:24)

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

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

此时,302重定向到其他网址意味着您应将书签保持为“http://sample.com/sample”。这是因为目标网址将来可能会发生变化。

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

答案 3 :(得分:10)

来自RFC 2616 (the Hypertext Transfer Protocol Specification)

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

答案 4 :(得分:5)

根据http status code definitions,302表示(临时)重定向。 “请求的资源暂时驻留在不同的URI下”

答案 5 :(得分:5)

302是表示资源位置变化的响应 - “找到”。

资源现在应该位于的网址应位于响应“位置”标题中。

“jump”应由请求客户端完成(在响应Location头字段中向资源url发出新请求)。

答案 6 :(得分:5)

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

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

答案 7 :(得分:4)

来自Wikipedia

  

HTTP响应状态代码302   发现是最常见的方式   执行重定向。它是一个   工业实践的例子   与标准相矛盾。

答案 8 :(得分:2)

HTTP代码302用于重定向,请参阅http://en.wikipedia.org/wiki/HTTP_302

它告诉浏览器阅读页面去其他地方并加载另一页。它的用法很常见。

答案 9 :(得分:1)

根据RFC 1945/Hypertext Transfer Protocol - HTTP / 1.0

   302 Moved Temporarily

   The requested resource resides temporarily under a different URL.
   Since the redirection may be altered on occasion, the client should
   continue to use the Request-URI for future requests.

   The URL must be given by the Location field in the response. Unless
   it was a HEAD request, the Entity-Body of the response should
   contain a short note with a hyperlink to the new URI(s).

   If the 302 status code is received in response to a request using
   the POST method, the user agent must not automatically redirect the
   request unless it can be confirmed by the user, since this might
   change the conditions under which the request was issued.

       Note: When automatically redirecting a POST request after
       receiving a 302 status code, some existing user agents will
       erroneously change it into a GET request.

答案 10 :(得分:0)

  • 代码302表示临时重定向
  • 与301重定向不同的最显着特征之一是,对于302重定向,SEO的强度不会转移到新的URL。
  • 这是因为此重定向旨在在需要将内容重定向到不是最终页面的页面时使用。因此,一旦取消了重定向,原始页面就不会失去其在Google搜索引擎中的位置。

示例:-尽管我们发现自己需要302重定向并不是很常见,但在某些情况下此选项可能非常有用。这些是最常见的情况:

  • 当我们意识到页面上有一些不适当的内容时。在解决问题的同时,我们可以将用户重定向到可能感兴趣的另一个页面。
  • 如果对我们网站的攻击需要恢复 在任何网页中,此重定向都可以帮助我们最大程度地减少 发生率。

重定向302是一种代码,用于告知特定URL的访问者该页面已被临时移动,将其直接定向到新位置。

  • 换句话说,当Google机器人或其他搜索引擎请求加载特定页面时,重定向302被激活。那时,由于重定向,服务器将返回一个自动响应,指示新的URL。

  • 通过这种方式,可以避免搜索引擎出现错误和烦恼 和用户,以确保导航顺畅。

有关更多详细信息,请参阅此Article

答案 11 :(得分:0)

302状态代码是HTTP响应状态代码,指示所请求的资源已被临时移动到其他URI。由于将来可能会更改位置或当前重定向指令,因此收到302 Found响应代码的客户端应继续将原始URI用于将来的请求。

带有此状态代码的HTTP响应还将在标头字段Location中提供URL。这是对用户代理(例如网络浏览器)的邀请,该请求是对位置字段中指定的新URL的另一次相同请求。最终结果是重定向到新URL。

答案 12 :(得分:0)

对于可能会对命名感到好奇的任何人,我只想补充一点,它可能被称为“找到”,因为当时用户打算接收的主要资源(例如私有网页)不可用(例如,用户尚未证明其身份),因此服务器已 找到 了用户可以接收的新资源(最多是登录页面)常见用例)。

它也是通过捉迷藏的方式“迷失和被发现”,这意味着在302状态下丢失的资源只会临时丢失,除非永久丢失(除非玩家有一些不良意图;))。

答案 13 :(得分:0)

首先让我们设想一下301和302的工作方式

  1. 301->永久移动

想象一下,有一些资源--http://hashcodehub.com/user,现在将来我们将资源名称更改为user- info->现在url应该是http://hashcodehub.com/user-info->但是用户仍在尝试访问相同的URL-> http://hashcodehub.com/user->从后端在这里,我们可以将用户重定向到新URL,并将状态代码发送为301->用于永久移动。< / p>

上面我已经解释了301的工作方式

让我们了解302在现实生活中将如何使用

  1. 302->临时重定向->这里不需要更改完整的url,但是由于某些原因,我们将重定向到位于不同位置的资源。在位置标头字段中,我们将提供新资源url的值,浏览器将再次在响应位置标头字段中向资源url发出请求。

  2. 302可以使用,以防万一我们的页面上有不适当的内容。在解决该问题的同时,我们可以将所有使用过的内容重定向到某个临时网址并解决该问题。

  3. 如果网站上有附件,并且某些页面需要还原,也可以使用它,在这种情况下,我们也可以将用户重定向到其他资源。

  4. 重定向302例如用于以不同的语言显示一个主页的多个版本。但是如果访客来自其他国家/地区,则该系统会自动将他们重定向到使用其语言的页面。

答案 14 :(得分:0)

302 :当您尝试加载的资源或页面通过 302 重定向暂时移动到其他位置时,会出现此状态代码。

答案 15 :(得分:-1)

我知道 302 有一些用例,我认为与 http -> https 相比,临时重定向是很合适的,后者是永久性

  1. google 使用 302 将他们的服务重定向到与您对应的语言/国家/地区的版本。

  2. cdn(例如 npm 使用的 unpkg.com)使用 302 将文件重定向到其当前/确切版本,这将在未来发生变化。

  3. 当电子商务网站进行季节性促销时,它希望在此期间展示,但在其他时间返回原始页面。