HTTP 302跳转

前言

  Http 302对应生活中的真实例子,可以类比手机所对应的呼叫转移功能,这样打进A手机的电话,均转移到B手机接听。

正文 
  302状态码应用的典型场景是服务器页面路径的重新规划,

  • 比如一个portal页面,换了新的域名,但是老的域名地址还有很多用户在使用,这样可以对老域名配置302跳转到新域名地址,保证服务的延续。
  • 另外对于一些客户端预埋的Url链接,免不了老版本地址失效与更改,将老地址配置302跳转到新地址,这样就能够全面兼容所有客户端版本。 
       
    举个栗子:对302有一个感性全面认知,在浏览器输入taobao.com,进行抓包,如下图,访问taobao.com后,服务器吐回状态码302 Found,然后Locatioin字段标识浏览器应该跳转到了www.taobao.com,从而打开了淘宝网站。

    对应于不同域名指向同一个地址的情况,大多是这么处理的。 
    这里写图片描述

什么是HTTP 302跳转?

  我们先从网址说起,再说浏览器和服务器之间的应答状态码,再谈网络中302的作用以及这个标准的http状态码能够解决什么问题。 
  在互联网世界里面,已经存在数亿量级的网页,如何管理及标识每一个网页以及方便浏览器寻址到此网页并展示呢? 
其中,每个网页都对应着一个URL(Uniform ResourceLocation)地址,也叫网址,类似于一个真实世界中的门牌地址一样,真实世界中标识了物理地址(如北京市朝阳区某小区张大妈家的门牌号)。

同样道理,网址标识了一个web页面所在的互联网里面的真实地址(这个页面处于www.baidu.com/file/1.html,处于baidu服务器file路径下的1这个文件)。

  当你用浏览器点击一个页面链接的时候,随即你看到了一个新的网页展示在浏览器内,在这个过程中,浏览器其实是在不断的接收服务器端的应答(这个应答是服务器端的状态,所以返回码叫状态码),从而来决策下一步来做什么(尽管大部分情况下,你毫无感知的就打开了你想要的页面),这个应答即状态码(status code),

2.在http协议里面,以三位数标识,共分为五类:分别为1××,2××,3××,4××,5××。一些常用状态码如下所示:

这里写图片描述

  301和302表示重定向:

301表示这个网页已经永久的由服务器的A路径下移动到路径B下,

而302表示临时移动到B路径下,对应到Url地址也即http://baidu.com/file/A/1.html到http://baidu.com/file/B/1.html,当浏览器访问前面一个地址的时候,这个时候服务器会告知浏览器,请到B路径下获取这个文件,随后浏览器重新发起网络请求,请求B路径下的页面,经过渲染,呈现给用户,例如淘宝的例子,请求taobao.com,收到302,从而浏览器再次请求www.taobao.com获得页面内容。
  • php 302 重定向代码

   <?php
    header("Location:https://www.taobao.com");
    exit();
   ?>

    访问该函数会跳转至淘宝首页

猜你喜欢

转载自blog.csdn.net/weixin_37569048/article/details/82495662