先说一下这两个的概念:

转发过程:客户浏 览器发送http请求----》web服务器接受此请求--》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;在这 里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显 示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。

重定向过程:其实是两次request,第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

以下是区别:

1、从数据共享上

      Forword是一个请求的延续,可以共享request的数据

      Redirect开启一个新的请求,不可以共享request的数据

2、从地址栏

      Forword转发地址栏不发生变化

      Redirect转发地址栏发生变化

 

3. 从运用地方来说
    forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
    redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等

4. 从效率来说
    forward:高.
    redirect:低.


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐