HTTP 301和302的区别

参考答案

1.  官方说明

  • 301 redirect: 301 代表永久性转移(Permanently Moved)
  • 302 redirect: 302 代表暂时性转移(Temporarily Moved)

2.  HTTP301和302的区别

2.1  相同点

  • 301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后,会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)。

2. 2 不同点

  • 301表示旧地址A的资源已经被永久地移除(这个资源不可访问了),搜索引擎在抓取新内容的同时,也将旧的网址交换为重定向之后的网址.
  • 302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。

3. 相关问题思考及剖析

3.1  什么是重定向

  • 通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

3.2  为什么要进行重定向,什么时候需要重定向

  • 网站调整(如改变网页目录结构);
  • 网页被移到一个新地址;
  • 网页扩展名改变(如应用需要把.php改成.Html或.shtml)。
以上这些情况下,如果不做重定向,用户收藏夹或搜索引擎数据库中的旧地址,只能让访问客户得到一个404页面错误信息,访问流量白白丧失。某些注册了多个域名的网站,也需要通过重定向,让访问这些域名的用户自动跳转到主站点等。
3.3 什么时候进行301或者302跳转
当一个网站或网页在24—48小时内,临时移动到了一个新的位置,这时候就要进行302跳转。例如,我有一套房子,但是最近我出差去外地了,工作结束我还回来住。
使用301跳转的场景,即之前的网站因为某种原因需要移除掉,然后要到新的地址访问,是永久性的。例如我的那套房子,已经卖给别人了,然后我在新地方重新买了一套房子,之前的房子永久性不住了。

4.  使用场景

4.1  使用301跳转的场景
  • 域名到期不想续费(或者发现了更适合网站的域名),想换个域名。
  • 在搜索引擎的搜索结果中出现了不带www的域名,而带www的域名却没有收录,此时可用301重定向,来告诉搜索引擎我们目标的域名是哪一个。
  • 空间服务器不稳定,换空间的时候。
4.2  使用302跳转的场景
  • 为了避免网址劫持,尽量使用301跳转。

以上,是Java面试题【HTTP 301和302的区别】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧