请求转发与重定向略解

  从字面的意思理解,重定向,“重”,意味着再一次。就是说,请求转发是一次请求,而重定向就是两次甚至是两次以上的请求。好了,已经解释完了。

 

   好,废话不多说,直接上图片。先来看一下请求转发的原理图。

实现请求转发的特点
  1. 用户请求了一次,所以url不变只有一个。由于是1次请求,OneServlet与TwoServlet共享同一个request和response.

  2. 页面跳转在服务器发生的,只能跳转到服务器内部的资源,无法跳转到服务器外部的资源

此时请求转发是属于服务器行为。

重定向原理图如下:

重定向跳转的特点
  1. 用户请求了2次,url就不一样了。跳转前后的2个资源不共享request和response

  2. 跳转的动作是浏览器发生的,意味着可以跳转到任何资源(服务器的内部与外部都可以)

与请求转发不同的是,浏览器第一次发出请求,服务器接收到第一次请求后,会返回302以及一个地址,浏览器再根据这个地址进行第二次访问。

转发:跳转前后的2个资源共享同一个request和response,以后可以资源之间可以传递数据

重定向:跳转前后的2个资源不共享request和response,不能传递数据

   举个生活例子。好比如去商店买东西。

1、假如你想要一包辣条,然后老板从一个货架上拿了一包辣条给你(请求转发);

2、或者刚好老板的店辣条卖完了,然后跟你说对面的商店有,叫你去那里买,最后你去了对面的商店买到了辣条(重定向)。

上面的例子,你=浏览器,老板=服务器,这样一来就很容易理解请求转发和重定向了。1的时候,买辣条的地方不变,2的时候买辣条的地方到的对面的阿商店了,并且还多走了路程,效率比1的时候要低。

posted @ 2020-09-24 11:09  吾王彦  阅读(200)  评论(1编辑  收藏  举报