当前位置:  编程技术>php

301与302重定向的区别有哪些

    来源: 互联网  发布时间:2014-10-12

    本文导语:  本节内容: 301与302重定向的区别 一,301永久重定向   被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。 如果可能,拥有链接编辑功能的客户端应当自动把请求的地...

本节内容:
301与302重定向的区别

一,301永久重定向

  被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。
如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。

  新的永久性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。

  如果这不是一个 GET 或者 HEAD 请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。

  注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的 POST 请求得到了一个301响应的话,接下来的重定向请求将会变成 GET 方式。

二,302 Found

  请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定
的情况下,这个响应才是可缓存的。

  新的临时性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。

  如果这不是一个 GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。

  注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location
中规定的 URI,而无视原先请求的方法。状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应。

大家都已经对基本的301跳转和302跳转做了解释, 我从我的理解解答下。

如果从便于搜索引擎友好的话当然是301最合适,一般情况下非特意临时性URL转移,都尽量用301跳转,这样的一个好处是搜索引擎会把该URL的PR值都带到跳转后的地址,而
302跳转早期被很多网站当作作弊手段,已经被多数搜索引擎重点盯查。

而性能方面原则上301跳转和302跳转没有多大差别,不过考虑到搜索引擎个案对待,也建议使用301跳转,301跳转搜索引擎是不对原地址进行访问的,而302跳转除了象@张洪
保所讲可能被劫持之外,还有可能会加大对服务器的URL请求数量。

搜索引擎对302跳转进行判断时,如果发现跳转目标页面URL更加复杂,就会返回来对原URL进行访问,寻取一个简单友好的地址,这样无形会加重服务器性能损耗,因此301跳
转要比302跳转靠普也对服务器性能有保障。

三,区别分析
301的含义是“永久重定向”,而302的含义是“临时重定向”
301 代表永久性转移是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

301转向:是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
由于搜索引擎排名算法只是程序而不是人,在遇到302重定向时,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL劫持的可能性。也就是说,一个不道德
的人在他自己的网址A做一个302重定向到你的网址B,出于某种原因, Google搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B上的内容,这种情况就叫做
网址URL劫持。你辛辛苦苦所写的内容就这样被别人偷走了。

302重定向又称之为302代表暂时性转移(Temporarily Moved ), 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的
URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服务器端的重定向,能够被搜索引擎蜘蛛正确地处理。

301重定向与302重定向的区别在于302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的网址。
因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。

301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

就是这些了,301与302重定向的内容,希望对大家有所帮助。

特别说明:笔者在实际开发中,经常用到的是php 301重定向或php 301跳转,因为我就是搞php编程的,呵呵。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 测试Python内部类型及type和isinstance用法区别
  • 请问 中科红旗与其他通常所用的linux有何区别 另外linux和unix有何区别
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • 请问rm和unlink区别,link和ln的区别
  • redis和mongodb区别详细介绍
  • 请问ncurses与curses有区别吗?有什么区别?在这两个库下编写的程序通用吗?
  • 正向代理与反向代理概念及其区别
  • 高手请赐招:数字签名与数字认证的区别,尤其是概念上的区别。谢谢!
  • linux ramfs和tmpfs区别及用法介绍
  • linux,Unix以及windows主要都有什么区别啊,包括系统内核和用户所能感觉到的区别
  • HTML 区块元素:<DIV>和 <SPAN>各自的定义与区别详细介绍
  • 请问各位对操作系统有研究的高手门,unix和linux,到底有多大的区别?区别在那里?其内核究竟有多少是相同的?
  • c/c++中的内存分配 malloc 和 new介绍及相互之间的区别
  • Class与ID区别 margin和padding区别 CSS学习笔记
  • docker和VM虚拟机的区别以及如何用docker搭建基础设施
  • 浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别
  • XHTML 详细介绍以及xhtml与html的区别
  • 请告诉我---Java2是什么东东?和Java有什么区别?JDK是什么?和JBuilder有什么区别?
  • 请问一下红色字体处的区别,及pthread_self()和pthread_creat()函数第一个参数的区别?
  • 请问这两句话有什么区别?
  • Linux和Unix是什么区别啊?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3