• 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';
  • 相关阅读:
    [NOI2014]动物园
    2018.7.15模拟赛
    2018.7.13模拟赛
    [CodeForces]920F SUM and REPLACE
    [BZOJ3211]花神游历各国
    [GSS5] Can you answer these queries V
    [SPOJ1716] GSS3
    [HNOI2012]排队
    2018.7.10模拟赛
    7.3模拟赛
  • 原文地址:https://www.cnblogs.com/brookin/p/3819580.html
Copyright © 2020-2023  润新知