01-重定向和转发的区别【ZeyFra】

1、啥是重定向(Redirect)?啥是转发(Forward)?

【重定向】

客户向服务器发送请求后,服务器处理完返回消息给客户端告知需再发送一次固定内容的请求,客户端便再次发送了一个请求从而跳转至新页面

【转发】

客户端向服务器发送请求后,服务器处理完之后把之前请求所携带的传输信息(在JavaWeb中为request和response对象)一同转发至下一个组件或网页

2、有什么区别?

1、地址栏不同(表面)

  • 转发:地址栏不变,并不会显示出所转向的地址

  • 重定向:地址栏改变,显示转向之后的地址

2、“请求 - 响应” 的次数和行为对象不同

  • 转发:整个过程只有一次,且属于服务器的行为,由服务器区发出请求,客户端并不知晓,所以客户端游览器中是不会显示出转向的地址

  • 重定向:整个过程至少涉及两次“请求 - 响应” ,且属于客户端行为,是服务器告诉客户端需要转向特定的地址,然后客户端再自己去请求转向地址,因此是会显示出转向的地址

3、速度不同

  • 转发:转发是在同一台服务器上完成,速度较快

  • 重定向:重定向需要经过数次客户端,在多台不同的服务器上完成,速度较慢

4、所携带的信息处理不同

  • 转发:不会丢失所携带的信息

  • 重定向:会丢失所携带的信息

3、如何选择?

1、转发速度快

2、转发只能访问当前的web应用程序,当需要访问别的web应用程序上的资源的时候便只能使用重定向

posted @ 2020-10-13 21:52  ZeyFra  阅读(123)  评论(0)    收藏  举报