301 302 304

301,302不同之处
301 redirect: 301 代表永久性转移(Permanently Moved)    请求一次后,服务器告诉客户端浏览器,永久重定向,下次再请求网页时不再请求远端服务器,客户端浏览器缓存了重定向的目标地址,但是,如果浏览器清空缓存后,浏览器重定向将失效,需要再次请求服务器。

302 redirect: 302 代表暂时性转移(Temporarily Moved )     每次客户端浏览器都需要请求服务器,服务器返回302,客户端浏览器,再根据响应头,请求相应的URL

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

问题:对搜索引擎来说缓存的地方是哪里?
SEO(搜索引擎优化):如果把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,在搜索引擎索引库中彻底废弃掉原先的老地址。

302 重定向是临时性转移。
在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,被误认为是spam(垃圾信息)

页面跳转方式
html页面的各种跳转方式
1、meta的refresh跳转。代码如下:
<meta http-equiv="Refresh" content="5; url=http://www.baidu.com">
content内容中的数字为秒数,表示几秒后跳转,url属性的值就是将要跳转的页面。

2、javascript跳转。代码如下:
<script language="javascript" type="text/javascript">window.location.href="http://www.baidu.com";</script>
不容易被搜索引擎看出来是跳转

程序语言的跳转
不同程序语言,通过自身提供的redirect实现跳转。
各种代码实现:
1)jsp的redirect跳转:response.sendRedirect(“test.jsp”);
2)asp的redirect跳转:Response.Redirect “test.asp”
3)php的redirect跳转:header(“location: test.html”);
4).net的redirect跳转:Response.Redirect(“test.aspx”);
附带了302状态码

301跳转
1)web服务器配置的301跳转。
     Apache的301跳转配置。在网站根目录下.htaccess实现,代码如下:
     redirect 301 “/a.htm”  http://www.a.com/a/
     前面的页面是跳转源页面,后者则是跳转目标页面。
2)动态程序的301跳转。除了web服务器可以设置301跳转外,程序语言本省也带有301跳转的功能,不同的实现语句:
a)asp代码如下:
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “your 301 destination url”
b)php代码如下:
header(‘HTTP/1.1 301 Moved Permanently’);
header(“location:http://www.wenjuntech.com”);
c).net代码如下:
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”301 address url”);
d)jsp的代码如下:
response.setStatus(301);
response.setHeader(“Location”,”301 url”);
response.setHeader(“Connection”,”close”);
对于网站的搬家或升级导致的页面url更改,最好采用301跳转方式实现,因为301跳转能有效得到搜索引擎的认可,pagerank会继承原有网站的,更有利于SEO。

不同跳转方式的http状态码
HTTP状态码是200跳转:
方法1:Response.Redirect("Test.aspx");
状态码 301  临时性跳转
方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" />
meta fresh:早些年用的比较多, 现在很少用。通过网页中meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,跳转过程中Http状态是200。
方法3:Server.Transfer("Test.aspx");
跳转过程中,Http状态都是200。
方法4:URLRewrite
跳转过程中,Http状态都是200。
编码实现301跳转
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.baidu.com");

301

<?php
ob_start();

echo ‘xxxxxxxxxxxxx‘;
header(‘HTTP/1.1 301 Moved Permanently‘);
header(‘location:http://www.qq.com‘);
echo ‘6666666666666666666‘;

302

<?php
ob_start();

print ‘xxxxxxxxxxxxx‘;
header(‘Location: http://www.baidu.com/‘);
print ‘ttttttttttttttttttt‘;

301 302 304

时间: 2024-10-24 03:11:24

301 302 304的相关文章

HTTP 的重定向301,302,303,307(转)

HTTP 的重定向301,302,303,307(转) (2012-12-11 11:55:04) 转载▼ 标签: 杂谈 分类: 网络 301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303:对于POST请求,它表示请求已经被处理,客户端

301/302的区别 python魔法语法

重定向301/302的区别 301主要应用场景是在域名跳转. 301重定向是永久的重定向,搜索引擎在抓取新的内容的统统是也将旧的网址替换为了重定向之后的网址. 302主要应用场景:比如:未登录的用户访问用户中心时重新定向到登录页面. 302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索引擎认为新的网址是暂时的 魔法语法 在这里列举取值.赋值.with的方法 对象['xx'] 取值,会触发哪个方法 __getattr__,在取值时如果对象中没有这个值

http协议的状态码 200、301、304、404、502 HTTP状态码解释

在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果.因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件. 如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如

HTTP常见状态码 200 301 302 404 500

HTTP状态码(HTTP Status Code) 一些常见的状态码为: 一.1开头 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 二.2开头 2xx (成功)表示成功处理了请求的状态代码.代码 说明 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 2

转载 HTTP常见状态码分析 200 301 302 404 500

转载原地址:  http://www.cnblogs.com/starof/p/5035119.html HTTP状态码(HTTP Status Code) 一些常见的状态码为: 一.1开头1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换.二.2开头2xx (成功)表示成功处理了请求的状态代

http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码

http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx(成功) 表示成功处理了请求的状态码. 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页.如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件. 201(

网站优化之尽量避免重定向(301/302)

重定向会增加http请求的次数,会影响到整个网站的性能,但是必要的重定向又可以提高用户体验,所以我们需要在性能和用户体验之间去权衡,达到最好的目的:下面讲讲php实现301永久重定向和302临时重定向以及怎么去避免重定向: 一.对于许多站点而言,以本站域名baidu.com为例:用户在浏览器中输入网址http://www.baidu.com/或者http://www.baidu.com/index.php,实际上访问的都是本站的首页:用户在浏览器中输入网址http://www.baidu.com

HTTP 状态码 301 302

301 Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址.除非额外指定,否则这个响应也是可缓存的.新的永久性的URI应当在响应的Location域中返回.除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明.如果这不是一个GET或者HEAD请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求

状态码301 302

301:永久重定向 302:临时重定向 相同点:输入网址A,都会重定向到网址B 不同点: ① 301:旧地址A的资源不可访问了(永久移除),重定向到网址B,搜索引擎会抓取网址B的内容,同时将网址保存为B网址. ② 302:旧地址A的资源仍可访问,这个重定向只是临时从旧地址A跳转到B地址,这时搜索引擎会抓取B网址内容,但是会将网址保存为A的. Tip:尽量使用301跳转,以防止网址劫持: 302跳转A->B,搜索引擎抓取B的内容却收录A的网址,同时使用302跳转很容易让搜索引擎误认为利用多域名指向