客户应该表现出不同的行为吗?怎么样?
客户应该表现出不同的行为吗?怎么样?
Answers:
状态301表示资源(页面)已永久移动到新位置。客户端/浏览器不应尝试请求原始位置,而是从现在开始使用新位置。
状态302表示资源暂时位于其他位置,并且客户端/浏览器应继续请求原始URL。
当搜索引擎蜘蛛在网页的响应标头中找到301状态代码时,它了解到该网页已不存在,它搜索位置标头以作为响应以选择新的URL并用新的URL替换索引的URL并传输pagerank 。
因此,搜索引擎会使用新的URL刷新不再存在(找到301)的所有索引URL,这将保留您的旧网页访问量,对其进行网页排名并将其转移到新的URL(您不会失去旧网页的访问量)。
浏览器:如果浏览器找到301状态代码,则将旧URL与新URL的映射进行高速缓存,除非清除高速缓存,否则客户端/浏览器将不会尝试请求原始位置,而是从现在开始使用新位置。
当搜索引擎蜘蛛发现某个网页的状态为302时,它只会临时重定向到新位置并抓取两个页面。旧的网页URL仍然存在于搜索引擎数据库中,并且始终尝试请求旧的位置并对其进行爬网。客户端/浏览器仍将尝试请求原始位置。
详细了解如何在asp.net c#中实施它以及对搜索引擎有何影响-http: //www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet -csharp-Implementation.html
301与302通常对于搜索引擎中的索引很重要,因为它们的抓取工具会考虑到这一点,并在使用301时传输PageRank。
有关更多详细信息,请参见Peter Lee的答案。
301是已为请求的资源分配了新的永久URI,并且对该资源的任何将来引用都应使用返回的URI之一进行。
302是请求的资源临时驻留在其他URI下。
由于重定向有时可能会更改,因此客户端应继续将Request-URI用于将来的请求。
仅当由Cache-Control或Expires标头字段指示时,此响应才是可缓存的。
webcomic.com/latest
并webcomic.com/some-comic-title
使用301 重定向到,浏览器将始终重定向到“ some-comic-title”。即使下一个漫画已经出版,现在“最新”也重定向到“另一个漫画标题”……这是302更好的地方。
301重定向被无限期地缓存(至少某些浏览器)。
这意味着,如果您设置了301,则访问该页面,不仅会重定向,而且还会缓存该重定向。
当您再次访问该页面时,您的Browser *甚至不费心去请求该URL,它只是转到了缓存的重定向目标。
在Cache中使用该重定向撤消访问者301的唯一方法是将其重定向回原始URL **。在这种情况下,浏览器将注意到循环,并最终真正请求输入的URL。
显然,如果您决定301访问Facebook或您没有完全控制的任何其他资源,那么这不是一个选择。
不幸的是,许多托管服务提供商在其管理界面中提供了一个称为“重定向”的功能,该功能执行301重定向。如果您使用它来将域名临时重定向到Facebook,作为即将发布的页面,那么您基本上就搞砸了。
*根据浏览器缓存HTTP 301的时间,至少是Chrome和Firefox ?。刚刚在Chrome 45上试用过。编辑:Mac上的Safari 7.0.6也会缓存,浏览器重启无济于事(Link说在Windows的Safari 5上确实有帮助。)
**我尝试使用javascript window.location = ''
,因为它是可以在大多数情况下应用的解决方案-它不起作用。这会导致检测不到无限循环。但是,php header('Location: new.url')
确实打破了循环
底线:仅在绝对确定不再使用该URL时,才使用301。通常永远不在根目录下(example.com/)