网络11——重定向(13/100)
时间:2023-02-09 01:03:01 | 来源:建站知识
时间:2023-02-09 01:03:01 来源:建站知识
1、重定向的过程
重定向属于被动跳转,301 是“永久重定向”,302 是“临时重定向”,浏览器收到这两个状态码就会跳转到新的 URI。
1.1 响应字段
“Location”字段属于响应字段,必须出现在响应报文里。但只有配合 301/302 状态码才有意义,它标记了服务器要求重定向的 URI。
1.2 过程
一次重定向发送了两次HTTP请求,第一个就是返回了3xx的请求,第二个请求重定向到了Location后的URI。但是用户无法感知两次请求。
比如:
响应头中出现了:Location: /index.html
浏览器就会根据第二次请求重定向到到index.html
2、重定向的状态码
2.1 301 永久重定向
原 URI 已经“永久”性地不存在了,今后的所有请求都必须改用新的 URI。当浏览器收到301时,会做一些处理,比如更新历史记录,下次访问直接访问新的URI。
2.2 302 临时重定向
原来的 URI 仍然有效,但暂时不可用,所以只会执行简单的跳转页面,不记录新的 URI,下次还是访问之前的URI。
3、重定向的应用
3.1 资源不可用
资源不可用时候,需要用另一个新的URI代替。避免访问时候出现404,所以需要重定向到新的URI,继续提供服务。
3.2 避免重复
多个网址跳转到一个URI,有一些网站会申请多个相似域名,这些域名都会重定向到主站,不需要为其他域名再提供服务。
3.3 域名、服务器、网站发生大幅改变
改变后,导致使用了新的域名,这时就需要使用 301 永久重定向。
3.4 系统维护
维护过程中,为了通知用户,会重定向到一个通知页面,等到维护结束,还会继续恢复业务。
服务降级也是用了临时重定向。
4、重定向的问题
性能损耗,两次跳转,虽然重定向的响应报文很小,但是大量重定向也会造成性能损耗。
循环跳转,一般是因为重定向策略设置有问题,浏览器要能检测到循环跳转问题,发现了及时停止请求,给出错误提示。