类目 |
Forward(转发) |
Redirect(重定向) |
基本含义 |
转发是服务器行为:服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器;地址栏url不变 |
客户端行为:服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL |
数据共享 |
转发页面和转发到的页面可以共享request里的数据 |
不共享数据 |
运用 |
一般用于用户登陆的时候,根据角色转发到相应的模块 |
一般用于用户注销登陆时返回主页面和跳转到其它的网站等 |
效率 |
高 |
低 |
具体过程 |
客户浏览器发送http请求—>web服务器接受此请求—>调用内部的一个方法在容器内部完成请求处理和转发动作—>将目标资源发送给客户; 转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。 |
客户浏览器发送http请求àweb服务器接受后发送302状态码响应及对应新的location给客户浏览器 à客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址 à服务器根据此请求寻找资源并发送给客户。 在这里 location可以重定向到任意URL, |
请求次数 |
转发行为是浏览器只做了一次访问请求。 |
重定向行为是浏览器做了至少两次的访问请求的。 |
注意事项 |
执行了跳转页面,下面的代码就不会在执行了 |
转后必须加上return,不然会 执行跳转后面的语句 |
请求转发(Forward)和重定向(Redirect)的比较
猜你喜欢
转载自blog.csdn.net/huaixiaozi90/article/details/79249139
今日推荐
周排行