ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HTTP状态码301、302的区别

2019-08-31 21:41:52  阅读:214  来源: 互联网

标签:HTTP 重定向 301 302 搜索引擎 网址 https 请求


301与302的区别

参考资料:

https://blog.csdn.net/zhouchangshun_666/article/details/79354193
https://www.cnblogs.com/cswuyg/p/3871976.html

301,永久重定向。

302,暂时重定向。

重定向就是你发送一个请求,服务器返回30x状态码,然后把新的地址放在Response的Location字段,浏览器会自动请求Location字段的url。
比如你在地址栏输入http://www.baidu.com/,会收到307返回码,浏览器会自动请求到https://www.baidu.com/
> 这里需要有个图片

那这里的307又是什么鬼,其实307跟302很像,但是307不会把POST请求转为GET请求。这里转请求是个什么鬼?原来浏览器在收到302响应后,如果请求是POST,那么重定向的请求会转为GET,虽然规定不是这么说,但似乎浏览器就说这么做的。规定说如果是非GET、HEAD请求,需要找用户重新确认,因为可能环境已经发生改变。

If the 302 status code is received in response to a request other
than GET or HEAD, the user agent MUST NOT automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.

https://tools.ietf.org/html/rfc2616#section-10.3.3

当然,我们直接访问http://www.baidu.com/,肯定是GET请求了,所以是直接重新请求到https://www.baidu.com/的,不管状态码是302还是307.

这时候又有疑惑了,重定向就重定向,为什么要区分永久和暂时?而且为什么要重定向呀?

  1. 为什么要重定向?
    考虑以下场景,用户把你的网站加到自己的书签里了,然后你的网站发下以下事件:

    1. 你们做了个重构,目录架构换了(这个重构兼容性没做好,但也可能是之前设计太糟糕,这是必要调整)
    2. 这个页面被删掉了,但你不想用户访问这个页面是404
    3. 你做动态网页了,html后缀改为php
      这时候如果没有重定向,用户可能以为你的网站倒闭了。
  2. 为什么要区分永久重定向和暂时重定向?
    网上好像是从搜索引擎角度区分的。

    1. 从网站建设者角度,用301会告诉搜索引擎,旧域名不用,可以把搜索权重交给新域名了(不然新域名可能要过很久才会被搜索引擎排到前面)。如果你用302,搜索引擎可能会认为你把多个域名指向同一个网站,干扰排名,会封掉你。
    2. 为什么多个域名指向同一网站就封你呢? 从搜索引擎角度,假设A网站比较短,没有太多参数,比较好看,但A网址302到B网址,B网址域名复杂,各种参数不好看,那搜索引擎在显示搜索结果时,可能会选择显示A网址,内容却是跳转到B的内容,假设B网址都是优质内容,但是他的优质内容都给A网址做搜索优化贡献了,这就不公平,搜索引擎又不能舍弃显示看起来好看的网址这一条件(可能一般网址好看的是好网站?),只能去打击这种行为了。

不知道从书签的角度,如果浏览器发现301了,会不会把书签的网址更新下?

标签:HTTP,重定向,301,302,搜索引擎,网址,https,请求
来源: https://blog.csdn.net/ZhaoBuDaoFangXia/article/details/100177382

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有