zoukankan
html css js c++ java
请求转发和重定向区别
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的人,让他们办好后,送了过来。
查看全文
相关阅读:
HttpClientUtil的工具类请求三方API
Linux下使用docker搭建ftp服务器
Springboot2.0.4整合Mybatisplus
Springboot前后端分离项目,配置跨域
Nokia S40 系统配置
"Your profile could not be opened correctly" Google Chromium Browser 错误纠正
CLR AppDomain
iTunes下载提速
Which Programming Language?
linux下制作软盘镜像文件
原文地址:https://www.cnblogs.com/lbloveab/p/7326255.html
最新文章
西西吹雪:从程序员到项目经理(一) 简单
田永强:优秀的JavaScript模块是怎样炼成的 简单
设计师需要的知识体系 简单
mysql load data 简单
redis学习资料汇集 简单
Web前端开发规范文档你需要知道的事 简单
西西吹雪:从程序员到项目经理(二) 简单
poj 3600 Subimage Recognition (枚举+dfs)
zoj 1089 Lotto
poj 3450 Corporate Identity (后缀数组)
热门文章
poj 2774 Long Long Message (后缀数组)
zoj 2058 The Archaeologist's Trouble II
poj 1222 & zoj 1354 EXTENDED LIGHTS OUT (枚举)
hdu 1272 小希的迷宫 (并查集)
hdu 4198 Quick out of the Harbour (bfs)
poj 3080 Blue Jeans (后缀数组)
zoj 1428 Magazine Delivery (DP)
poi操作excel
list分组根据某一个字段分组
Spring Boot@Component注解下的类无法@Autowired的问题
Copyright © 2011-2022 走看看