HTTP重定向:301(永久)与302(临时)(HTTP redirect: 301 (perman

2019-07-05 16:29发布

在客户端应该表现不同? 怎么样?

Answer 1:

状态301意味着资源(页)被永久移动到新位置。 客户端/浏览器不应尝试请求原始位置,但是从现在开始使用新的位置。

状态302意味着资源暂时位于其他地方,并在客户端/浏览器应该继续请求原始URL。



Answer 2:

当搜索引擎蜘蛛发现在网页的响应头301状态码,它知道这个网页已不存在,它会搜索位置头响应挑选新网址,并与更换新的索引网址,并转移的PageRank 。

所以搜索引擎刷新不再存在(301中)和新的URL的所有索引的URL,这将保留您的旧的网页流量,PageRank和它转移到新的(你不会失去你的老网页的流量)。

浏览器:如果浏览器发现301状态码然后将其缓存旧的URL与新网址的映射中,客户端/浏览器将不尝试请求原始位置,但是从现在开始使用新的位置,除非清除缓存。

当搜索引擎蜘蛛发现了一网页302个状态,它只会暂时重定向到新的位置,既抓取的网页。 旧的网页网址仍然存在于搜索引擎数据库,它总是试图要求原来的位置,并抓取。 客户端/浏览器仍将尝试请求原始位置。

了解更多关于如何实现它在asp.net C#中,什么是搜索引擎的影响- http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet -csharp-Implementation.html



Answer 3:

晴301 VS 302是在搜索引擎索引重要的,因为他们的爬虫使用301时考虑到这一点,并转移的PageRank。

见李彼得的回答更多的细节。



Answer 4:

301所请求的资源已经被分配了一个新的永久性URI,该资源的任何将来参考应该使用返回的URI之一来完成。

302是所请求的资源下不同的URI临时驻留。

由于重定向有时可能会改变,客户应继续使用Request-URI为将来的请求。

如果由缓存控制指示或Expires头字段此响应是仅可缓存的。



Answer 5:

301个重定向 (至少某些浏览器) 无限期缓存

这意味着,如果你设置了301,浏览该网页时,你不仅重定向,但重定向被缓存。

当你再次访问该网页,浏览器*根本不屑于请求URL,它只是对缓存的重定向目标。

只有这样,才能撤消301在高速缓存与重定向访问者,重新改向回到原来的网址**。 在这种情况下,浏览器会注意到循环,最后真的要求输入的URL。

显然,这不是一个选项,如果你决定在301到Facebook或任何其他资源你控制住不是完全。

不幸的是,许多主机服务商提供他们的管理界面简单地称为“重定向”,它做了301重定向功能。 如果你使用这个到您的域名给Facebook临时重定向为即将推出页,你基本上是拧。

*至少Chrome和Firefox,根据多久浏览器缓存HTTP 301重定向? 。 只是Chrome尝试它45.编辑:Mac上的Safari也缓存,重新启动浏览器并没有帮助7.0.6(链接说,在Windows上的Safari 5它确实帮助。)

**我尝试的JavaScript window.location = '' ,因为这将是可能在大多数情况下应用的解决方案-这是行不通的。 这导致一个未被发现的无限循环。 然而,PHP的header('Location: new.url')不破环

底线: 只有当你绝对相信你永远不会再使用该URL使用301S。 平时从不在根目录(example.com/)



Answer 6:

与301的主要问题是浏览器缓存,即使重定向如果禁用了从服务器级别的重定向。

它总是更好地使用302,如果要启用重定向短暂的维护窗口。



文章来源: HTTP redirect: 301 (permanent) vs. 302 (temporary)