1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说

forward:高.

redirect:低.

本质区别

解释一  

转发是服务器行为,重定向是客户端行为

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

重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现 是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里 location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的 路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

解释二

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

解释三

假设你去办理某个执照,
重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。
转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。

最新文章

  1. AmazeUI 框架知识点-布局和样式整理
  2. HTML学习笔记——CSS初涉
  3. 2015年11月26日 Java基础系列(六)正则表达式Regex
  4. Linux学习笔记(19) Linux服务管理
  5. textarea 在光标处插入文字
  6. linux下安装Apache(https) 服务器证书安装配置指南
  7. Descending Order
  8. OpenOffice 服务开机启动
  9. mysql数据库优化日志(更)-howyue
  10. linux c 系统报错
  11. NET Core的知识
  12. 截图工具 Snagit
  13. wpf应用程序 打印标签
  14. HTML5 语义元素、迁移、样式指南和代码约定
  15. DB Query Analyzer 6.02 is released, 71 articles concerned have been published
  16. git 依据SHA值提取文件patch
  17. C. Report
  18. nginx try_files 详解
  19. poj3278 Catch That Cow(简单的一维bfs)
  20. asp相关知识整理

热门文章

  1. Unity3d和Android之间互相调用
  2. Flutter开发环境(Window)配置及踩坑记录
  3. MyBatis持久层框架学习之01 MyBatis的起源和发展
  4. go语言学习-基础知识
  5. 如何在Eclipse中查看Java类库的源代码以及相应的api
  6. HDU.1529.Cashier Employment(差分约束 最长路SPFA)
  7. 一款功能强悍的web磁盘管理工具 (A powerful web disk management tools)
  8. jenkins使用总结
  9. C memset
  10. Linux设置和查看环境变量的方法 详解