🗒️重定向
主动跳转:我们在浏览器里主动点击一个链接
被动跳转:是由服务器发起的,浏览器的使用者无法控制。又称重定向,Redirection
重定向是服务器发起的跳转,要求客户端改用新的 URI 重新发送请求。如果不使用开发者工具的话,我们是完全看不到这个跳转过程的,也就是说,重定向是用户无感知的。
Request
Response
说明
3××
响应码
Location
指示要跳转的 URI
值可以是相对 URI,也可以是绝对 URI
值可以是一个 URI,也可以是多个
当浏览器收到 3××
报文时,会检查响应头里有没有 Location 字段。如果有,就从字段值里提取出 URI,发出新的 HTTP 请求,相当于自动替我们点击了这个链接。
在使用重定向时,要当心性能损耗,还要避免出现循环跳转。
性能损耗:重定向的机制决定了一个跳转会有两次“请求-应答”,比正常的访问多了一次。站内重定向还可以复用长连接,站外重定向就要开两个连接,如果网络质量差,成本会更高,进而影响用户体验
循环跳转:如果重定向的策略设置欠考虑,可能会出现 A=>B=>C=>A 的无限循环。所以 HTTP 协议特别规定,浏览器必须具有检测循环跳转的能力,在发现这种情况时应停止发送请求并给出错误提示
Last updated