当前位置: 首页 > news >正文

转:HTTP 301 跳转和302跳转的区别

301和302 Http状态有啥区别?
301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved), 302redirect: 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");
状态码 302  临时性跳转

方法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","..."); 这里的 ... 表示你要跳转去的页面。

                                原文地址

转载于:https://www.cnblogs.com/MirageFox/p/5602245.html

相关文章:

  • HTML5 离线缓存详解(转)
  • apache配置rewrite及.htaccess文件
  • SqlServer数据库全角转换成半角
  • 转-临界区对象TCriticalSection与TRTLCriticalSection的区别
  • 20160623
  • vSphere部署系列之05——虚拟机的创建和设置
  • 练出更好的团队
  • mysql整数
  • IOS过滤全局的Emoji表情输入
  • HTML5 网络拓扑图性能优化
  • [备忘]如何接收向shell脚本传入的参数
  • qt QClipBoard
  • redis window版本设置密码,但是无效的解决方案
  • Swift基础--Swift中的异常处理
  • 【iCore3 双核心板_ uC/OS-III】例程十一:任务消息队列
  • 《Java编程思想》读书笔记-对象导论
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 2017年终总结、随想
  • 345-反转字符串中的元音字母
  • js ES6 求数组的交集,并集,还有差集
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mysql数据库的条件查询语句
  • mysql中InnoDB引擎中页的概念
  • SAP云平台里Global Account和Sub Account的关系
  • Tornado学习笔记(1)
  • win10下安装mysql5.7
  • 大主子表关联的性能优化方法
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 判断客户端类型,Android,iOS,PC
  • 前端
  • 王永庆:技术创新改变教育未来
  • 一些css基础学习笔记
  • 一些关于Rust在2019年的思考
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 大数据全解:定义、价值及挑战
  • #控制台大学课堂点名问题_课堂随机点名
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (20050108)又读《平凡的世界》
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)菜鸟学数据库(三)——存储过程
  • (转)为C# Windows服务添加安装程序
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .libPaths()设置包加载目录
  • .net core使用ef 6
  • .Net Web项目创建比较不错的参考文章
  • .Net 垃圾回收机制原理(二)
  • .net 流——流的类型体系简单介绍
  • .NET/C# 使窗口永不获得焦点
  • .NET与 java通用的3DES加密解密方法
  • ?
  • @ComponentScan比较
  • @Documented注解的作用
  • @Transactional 竟也能解决分布式事务?
  • [20190416]完善shared latch测试脚本2.txt