HTTP 中的 301 和 302 有什么区别?

HTTP 中的 301 和 302 有什么区别?

我看到所有 tinyurl 之类的网站都使用302

但有什么区别呢?似乎两者都对我有用

答案1

301(永久移动)状态表示资源已永久移动到新位置。客户端(浏览器)以后应使用新位置,而不是旧位置。

302(找到)状态表示资源暂时位于其他地方。客户端应在当前请求中使用给定的位置,但将来应继续使用旧位置。

这两种状态代码都会使浏览器遵循重定向。您应该根据重定向是永久重定向还是临时重定向来选择使用 301 或 302 状态。

有关这些 HTTP 响应代码的更多信息,请参阅RFC 2616

答案2

当搜索引擎蜘蛛在网页的响应标头中发现 301 状态代码时,它就会明白该网页不再存在,它会在响应中搜索位置标头,选择新的 URL 并用新的 URL 替换索引 URL,同时转移网页排名。

因此,搜索引擎会使用新的 URL 刷新所有不再存在的索引 URL(找到 301),这将保留您的旧网页流量、PageRank 并将其转移到新网页(您不会丢失旧网页的流量)。

浏览器:如果浏览器发现 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

答案3

它们在SEO方面有所不同。

对于 302,google 将保存重定向器的 url 并将用户引导到它。

此外(对于 tinyurl),使用 302 可以更改重定向,例如在垃圾邮件的情况下(请参阅http://tinyurl.com/nospam.php?id=amgzs6例如)。使用 301 使得更改重定向更加困难

相关内容