从HTTP状态 301,302,200 来看页面跳转

原创 2007年09月21日 14:49:00

301和302 Http状态有啥区别?

301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:

301 redirect: 301 代表永久性转移(Permanently Moved),

302 redirect: 302 代表暂时性转移(Temporarily Moved ),

当然 Http 状态 200 标示没有任何问题发生。

 

这两种转移在使用的时候有啥好处或者问题?

301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 重定向是临时性转移。

在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

研究搜索引擎优化(SEO)的人,应该都知道,301,302 使用不当,或者灵活使用会有不错的效果的,比如参看下面文章:

302转向与网址劫持

301转向和网址规范化

301重定向的实现方法
51window提供的301转向的代码
一个网站十几个域名的重定向经验谈
几个常用的301重定向

 

 

如果是运维人员,配置WEB服务器的一些设置就可以实现跳转,比如下面一些关于IIS实现重定向的文章

将请求重定向到文件、目录或程序 (IIS 6.0)

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true

重定向参考 (IIS 6.0)

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true

其他WEB服务器也可以通过设置实现跳转,我就不罗列了。

 

 

从技术人员来说我们比较常用的跳转方法有以下几种:

我们使用 Fiddler 工具来监控的下面提到的几种方法,看跳转过程中HTTP状态码是301?302?200?:

 

方法1:Response.Redirect("Test.aspx");

状态码 301  临时性跳转

 

方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" />

meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

方法3:Server.Transfer("Test.aspx");

这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

方法4:URLRewrite

这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。

 

没有一种是301跳转。也就是上面几种跳转方式都用不到301跳转的好处。

 

使用301跳转有啥好处呢?

SEO(搜索引擎优化)中提到一点:如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。

 

如何编码实现301跳转呢?

Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","...");

这里的 ... 表示你要跳转去的页面。

 

 

参考资料:

301永久重定向实现方式及302重定向

 

http状态码301和302详解及区别——辛酸的探索之路

一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解。这里记录下,希望能有新的认识。大家也共勉。 官方的比较简洁的说明: ...
  • grandPang
  • grandPang
  • 2015-08-12 17:50:44
  • 49230

httppost 302 错误,HttpPost、HttpGet关于URL重定向区别

今天在做一个HttpPost请求的时候,
  • catoop
  • catoop
  • 2014-10-17 17:53:10
  • 113171

HTTP返回码中301与302的区别

一.官方说法 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:  301 redirect: 301 代表永久性转移(Permanently Moved)。 ...
  • qmhball
  • qmhball
  • 2012-08-07 14:28:55
  • 82253

http 301、302、304、400、405、415状态码解释

http 301、302、303、304、400、405、415状态码解释
  • wangjun5159
  • wangjun5159
  • 2016-04-25 09:42:48
  • 20941

使用java处理HTTP返回302的问题

 前几天用java处理HTTP中的Form时,遇到302返回值,结果java自动跳转,反而使得没有时间将cookie送过去,于是不能得到正确的页面,返回400号错误。后来经过一系列的寻找,终于得到如下...
  • HegcH
  • HegcH
  • 2007-11-18 14:07:00
  • 12305

HttpClient 302 错误

使用Gson+HttpClient实现如下功能:A项目远程调用B项目controller层的C接口。实现过程中发现A项目访问C接口时无法进入后者的断点,检查HttpClientUtil类发现respo...
  • HaoJiaDaShao
  • HaoJiaDaShao
  • 2017-09-12 15:28:27
  • 601

【网页】HTTP错误汇总(404、302、200……)

原贴:http://blog.sina.com.cn/s/blog_68158ebf0100wr7z.html HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 4...
  • qqxx6661
  • qqxx6661
  • 2016-08-04 10:30:09
  • 2333

什么是HTTP 302跳转?

前言   Http 302对应生活中的真实例子,可以类比手机所对应的呼叫转移功能,这样打进A手机的电话,均转移到B手机接听。 正文   302状态码应用的典型...
  • u011018979
  • u011018979
  • 2015-12-23 09:50:18
  • 6797

HTTP 302跳转

前言   Http 302对应生活中的真实例子,可以类比手机所对应的呼叫转移功能,这样打进A手机的电话,均转移到B手机接听。 正文   302状态码应用的典型场景是服务器页面路径的重新规划, ...
  • liangxy2014
  • liangxy2014
  • 2018-01-03 20:05:49
  • 445

页面自动跳转与http302、html refresh以及js跳转之间的关系

转自 http://www.iigrowing.cn/ye-mian-zi-dong-tiao-zhuan-yu-http302-html-refresh-yi-ji-js-tiao-zhuan-zh...
  • xgh_2012
  • xgh_2012
  • 2016-01-07 13:38:06
  • 4458
收藏助手
不良信息举报
您举报文章:从HTTP状态 301,302,200 来看页面跳转
举报原因:
原因补充:

(最多只允许输入30个字)