码迷,mamicode.com
首页 > 其他好文 > 详细

转发(forward)与重定向(redirect)

时间:2019-03-17 20:01:56      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:forward   页面   www   应用   res   跳转页面   就会   直接   浏览器   

转发(forward)

是服务器请求资源,服务器直接访问目标资源地址的URL,读取并发送目标URL返回的内容到浏览器,这个过程浏览器是不知道,浏览器的地址栏还是原来的地址。
转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的也是自己的容器内的request,故转发页面和转发到的页面可以共享request里面的数据。

重定向(redirect)

是服务器根据处理逻辑,返回一个302状态码和新请求地址,告诉浏览器重新去请求这个url,这时浏览器的地址栏就会变成新的URL。因为是浏览器重新请求目标地址,所以这个新地址可以重定向到容易的URL,并且两次请求的request是不共享的。

总结

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

两者的内部机制有很大的区别:

  • 请求转发只能将请求转发给同一个WEB应用中的组件,而重定向还可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL。
  • 重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。
  • 请求转发调用者和被调用者之间共享相同的request对象和response对象,重定向调用者和被调用者属于两个独立访问请求和响应过程。
  • 重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,转发是执行了跳转页面,下面的代码就不会在执行了。

参考

转发(forward)与重定向(redirect)

标签:forward   页面   www   应用   res   跳转页面   就会   直接   浏览器   

原文地址:https://www.cnblogs.com/Utah-Lee/p/10548393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!