http协议中的重定向
client:
向server发送一个请求,要求获取一个资源
server:
接收到这个请求后,发现请求的这个资源实际存放在另一个位置
于是server在返回的response header的Location字段中写入那个请求资源的正确的URL,并设置reponse的状态码为30x
client:
接收到这个response后,发现状态码为重定向的状态吗,就会去解析到新的URL,根据新的URL重新发起请求
状态码
重定向最常用为301,也有303,
临时重定向用302,307
与请求转发的对比
请求转发
服务器在处理request的过程中将request先后委托多个servlet或jsp接替进行处理的过程,request和reponse始终在期间传递
- 重定向时,客户端发起两次请求,而请求转发时,客户端只发起一次请求
- 重定向后,浏览器地址栏url变成第二个url,而请求转发没有变(请求转发对于客户端是透明的)
- 流程
重定向:
用户请求—–》服务器入口——-》组件——>服务器出口——-》用户—-( 重定向)—》新的请求