14 重定向和跳转
-
总结
1、重定向是服务器发起的跳转,要求客户端改用新的
URI重新发送请求,通常会 自动进行,用户是无感知的2、
301/302是最常用的重定向状态码,分别是 永久 重定向和 临时 重定向3、响应头字段
Location指示了要跳转的URI,可以用绝对或相对的形式4、重定向可以把一个
URI指向另一个URI,也可以把多个URI指向同一个URI,用途很多5、使用重定向时需要当心性能损耗,还要 避免循环跳转
定义
-
重定向
1、服务器来发起的,浏览器使用者无法控制
2、实际上发送了 两次 HTTP 请求,第一个请求返回了
302,然后第二个请求就被重定向到了响应头中Location字段对应的地址3、
Location属于 响应字段,必须出现在响应报文里。但 只有配合 301/302 状态码 才有意义,它标记了服务器要求重定向的URI4、
Location里既可以使用绝对URI(带上http协议头),也可以使用相对URI(path + query)
重定向的相关问题
1、性能损耗
定向的机制决定了一个跳转会有 两次请求 - 应答,比正常的访问多了一次(站内链接可以通过长连接,如果站外就要重新进行TCP连接)
2、循环跳转
浏览器具有检测循环跳转的能力,在发现这种情况时会停止发送请求并给出错误提示