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

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

下面是图解:

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

一、过程:

转发:浏览器发送请求到服务器==》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请求(握手挥手等操作))。

 

posted @ 2019-05-14 10:30  千千万花世界  阅读(379)  评论(0编辑  收藏  举报