301和302是最常见的HTTP重定向代码。

301永久重定向

301重定向是指示链接的目标已永久将URL更改为不同的URL,例如,当seoexample更名为example时,他们将URL从seoexample.com更改为example.com,每个seoexample.com页面都通过永久的301重定向重定向到相应的example.com页面。

302临时重定向

在实际的HTTP规范中,302旨在简单地表明预期的URL不是给定资源的正确URL,然而,大多数网络系统都以这种方式实现了临时重定向,因此它通常被用作301的临时版本。

为了区分原始302的两个预期特征,HTTP代码标准的管理机构实施了303和307代码,实际上,这两种都不常用,302仍然可以作为临时重定向。

303,原始302的预期功能

当浏览器进行PUT调用并通过GET响应接收到不同的URL时,它使用的是303协议,如果你熟悉该技术标准,你几乎可以忽略这一点,因为这与搜索引擎优化完全无关。

304未修改

用于数据缓存的代码,如果服务器在过去提取了页面的数据,并且客户端请求该页面,则服务器将检查该页面是否已更改,如果页面以304响应,则表示服务器已经具有该页面的最新版本,然后,服务器可以提供它已有的内容,而无需重新运行代码,重新获取资产或重新生成页面。

305使用代理

此代码是一种奇怪的传统措施,服务器用它告诉客户端它只能通过指定的代理访问服务器,它曾经被滥用,随后被浏览器忽略,基本上已被放弃,类似地,306代码指定客户端应该使用特定代理,并且不再使用。

307临时重定向

当浏览器向服务器请求URL 1时,但URL已暂时更改,服务器将使用307和新的URL 2进行响应,但是,由于它是临时重定向,因此浏览器将不存储此信息,当浏览器下次请求URL 1时,服务器将再次检查并查看重定向是否已被删除。

308永久重定向

这意味着要成为301重定向的一个更现代,更流畅的版本,当浏览器向服务器请求URL 1时,服务器说“实际上,它现在是URL 2”。然后,流量将正常进行到URL 2,而不用更改HTTP的方法; 这允许通过表单提交进行数据传输而不会发生问题,例如,重定向失败,在所有这些中,你只需关心 301,302,307和308。

GET和POST

为了理解在任何特定时间应使用哪种重定向,您需要了解一些关于HTTP如何工作的信息。

GET和POST都是浏览器或客户端与服务器通信的方法,简而言之,GET就是浏览器向服务器请求特定数据,POST将数据提交给要处理的服务器。

GET请求可以被缓存,它们保留在浏览器历史记录中,可以添加书签,并专门用于检索数据,“抓住这个URL上的内容”本质上是一个GET请求。

POST请求更像是要由服务器处理的脚本,您是否曾经使用过一种基于网络的搜索表单,当您点击“返回”按钮或尝试刷新页面时,抛出“您需要重新提交数据到表单”警告?这是因为它是一个POST请求,POST请求不会被缓存,不会保留在浏览器历史记录中,也不能被添加书签,因为它们或多或少是一组到服务器的命令,而不是静态资源的请求。

301重定向和308重定向的核心主要区别在于308重定向不允许从POST 更改为GET,302和307也是如此; 307是不允许改变的。

如果您的网址为1的表单提取了来自网址2的数据,并且您将网址2更改为网址3,则表单将会中断而不执行特定操作,在这种情况下,使用更高编号的重定向307或308将很重要。

在绝大多数情况下,特别是当你只关注SEO时,你只需使用301永久重定向或者302临时重定向。

如果您在搜索引擎优化是您的主要关注点时是否应该使用307或308重定向?一般来说,答案是否定的,307和308都是HTTP 1.1标准,虽然这些更新更高效,但它们并不一定在服务器,浏览器或搜索引擎中得到广泛支持,在被广泛采用之前,最好将重定向保留为301或302。

你应该使用哪个?

如上所述,301重定向是永久重定向,302是临时重定向,你应该使用哪一个,什么时候?

302重定向被视为临时更改,不会被缓存或保存,实质上,302重定向不被搜索引擎认为是重要的,如果他们抓取您的网站,他们会使用它,但他们会认为原始链接是真正的链接。

在某些情况下,302重定向可能很有价值,它们可用于地理定位,分割测试,某些形式的用户跟踪以及意图为临时的重定向,例如,在维护站点期间更改URL以便内容仍然可用于其他URL,可以使用302来完成。

302重定向不会传递页面权重或将旧URL链接到新URL,如果您要将站点的URL从一个更改为另一个,则不需要使用302重定向,这样做基本上会将所有网站价值留在旧网址上。

在某些情况下,搜索引擎会将302认为是301,并且新网站应具有旧网站的价值。但是,如果发生这种情况,这很可能需要一些时间,并且与永久重定向相比,它们可能会给您带来更少的价值,您实质上是在向百度表示您不知道如何正确迁移某个网站,并且他们会在记入您的同时记住这一点,使用302重定向时,您将失去大部分的页面权重传递。

如上所述,301重定向是永久性的,如果您正在从一个网址迁移到另一个网站,合并两个网站,或者更改不希望被还原的网址,则可以使用301重定向。

301重定向旨在通知浏览器和搜索引擎从一个URL移动到另一个URL,就像在你搬家时没有更改快递地址,你的快递可能会产生配送失败等不可抗因素。

一般来说,301是永久性的,如果你想将页面权重传递到新URL,请使用301,如果需要临时改变URL,则可以使用302 ,但他不会转移页面权重。

301重定向是永久的,百度识别301需要多久?你应该保持重定向多久?

这可能是半年,或者比半年更长,这样我们才能真正确定指向旧网址的所有内容都指向新网址。”

长期保持重定向对于百度确保他们已正确编制索引并将有关旧页面的所有内容重定向到新页面非常重要,对于拥有旧页面书签的用户来说,更改他们的书签也很重要,当你删除重定向,并有人试图访问旧页面,将会产生404。

个人理解:

302和301相比,301是永久型重定向,浏览器会对其进行缓存,再次访问的时候,不会访问旧地址而是直接访问新地址,而302与其相反。同时,对搜索引擎来说,301传递页面权重,302不传递,且某些浏览器对302的支持不是很好。

经测试:第一次301重定向时,

第二次301,

重定向301和302区别详解(转)相关推荐

  1. 重定向301和302区别与问题的解决

    301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另 ...

  2. php重定向和伪静态,PHP重定向与伪静态的区别详解

    伪静态是SEO重要的方法,通过重定向来实现,并且可以通过重定向来隐藏网站的技术,过滤异常访问.本课分为两部分,前半部分详细介绍Apache重定向的基础知识,后半部分通过多个实际案例再次加深对重定向的理 ...

  3. 浏览器 重定向 301 和 302 区别

    一直在使用一个php写的个人博客,但是问题比较多,今日闲来无事,就想改造改造.改造的最后一步是未登录用户跳转到登录页面.我使用的是重定向跳转.但是遇到一个问题: 302重定向在浏览器里面依然能看到有数 ...

  4. Servlet交互【重定向 与 请求分派】详解

    Servlet交互 在serlvet中,需要调用另外一个资源来对浏览器的请求进行响应,两种方式实现: 调用HttpServletResponse.sendRedirect 方法实现 重定向 调用Req ...

  5. Web响应重定向301与302

    Web响应重定向301与302: 301与302的作用: 301与302都是请求的重定向.状态行设置在响应行中,重定向地址设置在响应头部.请求方获取到响应报文后完成请求的重定向. 301与302的区别 ...

  6. http_code 301和302区别

    http_code 301和302区别 301 Moved Permanently 永久移动 表示被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一. ...

  7. [ASP.NET]ASP.NET中的Inherits、CodeFile、CodeBehind的区别详解及OWIN及IDENTITY

    篇一 : ASP.NET中的Inherits.CodeFile.CodeBehind的区别详解 Inherits.CodeFile.CodeBehind 在 ASP.NET 中使用代码隐藏方法来设计W ...

  8. HashTable和HashMap的区别详解

    HashTable和HashMap的区别详解 一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同 ...

  9. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

最新文章

  1. Linux简介、什么是Linux
  2. Oracle 11g Release 1 (11.1)——简单管理聚簇
  3. 32. Longest Valid Parentheses 最长有效括号
  4. 数据库:计算地球上两个坐标点之间里程
  5. 学习C++,知识点太多记不住怎么办?
  6. 《HTML与CSS入门经典(第8版)》——第2章 发布Web内容2.1 创建用于本章的示例文件...
  7. 平安银行java面试_平安银行JAVA笔试题一.doc
  8. EmguCv模板匹配学习日记
  9. 通过python获取浏览器cookie
  10. proteus三输入与门_proteus元件对照
  11. tpc-ds99 工具使用
  12. X-VECTORS: ROBUST DNN EMBEDDINGS FOR SPEAKER RECOGNITION论文翻译
  13. 修改Windows7启动画面与登录画面
  14. 运行阶段及面向对象技巧
  15. 【软件安装】SPSS22.0安装
  16. G1-007 小鲁摘苹果 (10 分)(2022/3/15天梯赛校内选拔赛)
  17. UE4 SetVisibility()和SetHiddenInGame()的比较
  18. 使用普通A4纸 热转印PCB
  19. elementui 按钮 表单_elementUI 学习入门之 Button 按钮
  20. 网络安全自学笔记05 - 网络协议基础与攻击

热门文章

  1. 数组Array的join方法使用
  2. uniapp播放本地视频,循环播放第二遍会显示加载图标
  3. git回滚reset到指定分支
  4. 朝花夕拾 - 公众号停更感想
  5. Dubbo的底层实现原理和机制
  6. IDEA中vue代码提示
  7. 解决endnotes给word文件添加索引失败问题
  8. 电商商城系统-微信小程序
  9. MySQL数据库(Java的数据库编程:JDBC)
  10. JSON.parse() 与 JSON.stringfy()