题目:下面有关forward和redirect的描述,正确的是() ?

A.forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求

B.执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址

C.执行redirect时,服务器端告诉浏览器重新去请求地址

D.forward是内部重定向,redirect是外部重定向

E.redirect默认将产生301 Permanently moved的HTTP响应

答案:BCD

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的人,让他们办好后,送了过来。

forward和redirect有什么区别?相关推荐

  1. jsp 中forward 和 Redirect 的用法区别

    jsp中跳转的用法和区别 区别 用法 forward的用法 redirect的用法 区别 首先我们要知道的是forward是转发,地址用的是原地址,但是内容变为设置转向地址的内容. redirect ...

  2. forward 和 redirect 有什么区别 区别是什么?

    Forward和Redirect代表了两种请求转发方式:直接转发和间接转发. 直接转发方式(Forward),客户端和浏览器只发出一次请求,Servlet.HTML.JSP或其它信息资源,由第二个信息 ...

  3. forward和redirect的区别

    2019独角兽企业重金招聘Python工程师标准>>> 1.从地址栏显示来说  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把 ...

  4. forward 和redirect的区别

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

  5. 请求转发(Forward)和重定向(Redirect)的区别

    转载于昊子豪的博客 请求转发(Forward)和重定向(Redirect)的区别 forward(转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些 ...

  6. Response对象||案例:重定向||forward 转发 和  redirect 重定向的 区别||路径写法

    Response对象功能:设置响应消息 1. 设置响应行         1. 格式:HTTP/1.1 200 ok         2. 设置状态码:setStatus(int sc)      2 ...

  7. java中forward和redirect_好程序员Java教程分享:Forward和Redirect的区别

    Java教程分享:Forward和Redirect的区别,用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉 ...

  8. 如何在请求转发的时候对url解码_Java技术分享:Forward和Redirect这两种转发方式的区别...

    用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发 ...

  9. Servlet中forward和redirect的区别(转)

    forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);      re ...

最新文章

  1. 充电 | 打开机器学习的大门,需要了解哪些知识?
  2. R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)
  3. ReactiveCocoa源码解读(二)
  4. 七年前将UC卖给马云,套现300亿的何小鹏,现今再创新奇迹?播报文章
  5. mysql数据库blob换行_mysql Blob存取的一个简单例子
  6. Html5---可编辑的Contenteditable
  7. SLS机器学习介绍(05):时间序列预测
  8. cloudstack基础知识
  9. mysql zhu 主从复制_MySQL主从复制--原理
  10. 10分钟掌握运输问题(一)
  11. 【leetcode】中文版题库一刷ing
  12. 4款最好的Android设备HTML编辑器
  13. SQL Server 2000/2005/2008 系列产品下载地址
  14. 互联网日报 | 中国移动香港实现5G独立组网;嫦娥五号顺利进入环月轨道;钟慧娟成全球白手起家女首富...
  15. 微软账号登陆不上_微软待办(todo)如何跟Outlook任务同步?
  16. C语言求13位条形码的验证码,c语言问题 条形码输入
  17. 为什么桌面上的计算机打不开怎么办,怎么解决电脑桌面图标打不开
  18. php微缩图,PHP进阶技巧:php用流方式制作缩略图
  19. 无线web认证计费服务器,WEB认证原理
  20. 21根火柴常胜将军c语言,常胜将军算法

热门文章

  1. tableau实战系列(四十七)-Tableau快速生成可视化视图
  2. 数据结构面试的常客,一文带你深入了解堆
  3. 机器学习--线性回归、逻辑回归
  4. java 中调用 Matlab 的函数
  5. MATLAB与图像处理(一):图像中结构张量的求法(Structure Tensor)
  6. python pandas空值与缺失值处理
  7. 微服务架构的核心要点和实现原理
  8. Java内存模型深度解析:final--转
  9. SonarQube代码质量管理平台安装与使用--转载
  10. 【机器学习】理解机器学习