HTTP状态码301和302的区别

简介

在HTTP状态码中,3XX表示重定向,指网页发生了转移,重定向到目标地址中。

301:表示永久性转移 (Permanently Moved)

302:表示临时性转移(Temporarily Moved)

说明

301和302都是将URL地址转移到新的地址中,这是二者的共同点。不同点是:

301适合永久重定向:

        常见场景是使用域名跳转。浏览器发出原始请求后重定向到新地址,浏览器会缓存这个请求,等下次再次访问原始地址时会直接请求到新地址去。

302适合临时跳转:

        可用于临时的、动态的地址跳转,每次请求原地址都会重新重定向到目标地址。应用场景:页面单点登录。

301和302应用实践

功能:门户系统使用CAS统一认证系统。在门户上集成第三方应用后点击应用会携带包含用户信息的ticket参数。如果请求中没有ticket参数,则需要重定向到CAS的登录页面。

1、时序图理解

HTTP状态码301和302的区别_第1张图片

     2、针对第1步接收ticket参数

HTTP状态码301和302的区别_第2张图片

3、 区别

CAS点击应用(即API接口)默认是没有ticket的(可能和客户的CAS服务器有关),因此会重定向到/cas/login登录页面。关键在于是301还是302重定向。

当使用302时,API接口会有2次调用记录。点击应用是第1次不携带ticket请求 API接口被重定向到CAS登录页面;随后CAS携带ticket第2次请求API进入右侧条件

HTTP状态码301和302的区别_第3张图片
当使用301时,API接口只有在浏览器第一次调用时才会有2次调用记录(同302),之后调用时浏览器已经默认把CAS登录页面作为API接口进行缓存,调用API时默认调用CAS登录页面,因此API接口只有一次 携带着ticket的请求记录

HTTP状态码301和302的区别_第4张图片

 

   

你可能感兴趣的:(http,网络协议,网络)