重定向与转发本质都是跳转到新的URL

下面是图解:

Servlet详解(五)--重定向与转发

重定向与转发的本质区别在于:转发是一个服务端的行为,而重定向是一个浏览器的行为。

一、过程:

转发:浏览器发送请求到服务器==》Server根据Servlet内部代码将请求转发至新的Servlet(jsp,html,Request还是原先那个)==》新的Servlet将响应返回至Client端

特点:转发必须在同一个web服务器里面(否则服务器无权转发),一次转发对于client是不可见的,client只能看见自己发出一次请求,收到一次响应,URL依然是第一次访问的路径。Request与Response相同。

 

重定向:client第一次向server发出请求==》server通过servlet选择重定向并向client作出响应==》响应返回状态码为302,内容包括location地址==》client接收到响应并解析响应包,向新的location发起第二次访问请求(url已经成为第二次的路径,且一个新的Request)==》访问到地址二后,地址二作出第二次响应

特点:转发是可以在多个服务器的(百度点击都是重定向),重定向对于client来说是两次访问,第二次url也会改变,Request与Response都是两个。

 

当然,转发虽然限制比较大(同一个web服务器),但是速度会比重定向快(省略掉了一次http请求(握手挥手等操作))。

 

相关文章:

  • 2021-11-09
  • 2021-11-28
  • 2021-07-07
  • 2021-04-24
  • 2021-12-08
  • 2022-12-23
  • 2021-12-05
  • 2022-01-09
猜你喜欢
  • 2022-12-23
  • 2021-10-16
  • 2021-05-30
  • 2021-10-23
  • 2021-09-24
  • 2021-09-11
  • 2022-02-14
相关资源
相似解决方案