ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

前端页面请求转发(forward)与重定向(redirect)

2021-12-26 19:02:10  阅读:160  来源: 互联网

标签:redirect 重定向 跳转 客户端 转发 forward 页面 请求


页面跳转有两种实现方式:请求转发页面重定向

请求转发(forward)

请求转发可以理解成是服务器端的行为客户端发起一次请求,这个请求在整个服务端可以被多次传递,但都是由服务器端的处理程序传递给另一个处理程序,客户端不需要发起二次请求,无论这个请求经历过多少个处理程序,始终都是同一个请求,也就意味着,这个请求中的数据经历过的每一个程序都可以使用。在同一个请求中request范围中的数据不会丢失。

当使用了请求转发后,在客户端浏览器地址中不会显示出转向后的地址;服务器内部转发,整个过程处于同一个请求当中(请求对象只有一个)。

页面重定向(redirect)

可以理解为是客户端的行为,客户端发起一次请求,服务端给出一次响应,但这个响应包含下一次客户端需要访问的服务器端处理程序的地址,客户端再次发起请求,将会得到处理结果,也就意味着重定向客户端至少发起两次请求。两次请求中request范围中的数据丢失。

当使用了重定向跳转页面后,在其客户端路径栏显示的应该是其重定向的路径,客户端是可以观察到页面地址变化的

发送请求的方式(简单的重定向):
(1)浏览器地址输入链接
(2)a标签

 <a href="URL地址">跳转</>

(3)form表单

<form action="URL地址" method="get/post">
	<input type="submit" value="跳转">
</form>

(4)通过js的BOM操作

<script>
	alert("点我以后页面重定向")	
	window.location.href="https://www.baidu.com"
</script>

(5)Ajax异步请求

二者区别

(1)请求次数:请求转发是一次请求,重定向至少请求两次;
(2)地址栏不同:请求转发的地址栏不会发生改变,重定向的地址栏会发生改变;
(3)是否共享数据:请求转发(一次请求)可以共享请求参数,重定向后(两次请求),就获取不了共享参数了;
(4)跳转限制:重定向可以跳转到任意URL,请求转发只能跳转本站点资源;
(5)发生行为不同:重定向是客户端行为,请求转发是服务器端行为。
(6)速度:重定向的速度比请求转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。

使用场景

  • 如果需要共享请求中的数据,只能用请求转发;
  • 若要跨域访问,只能用重定向;
  • 请求转发可能造成表单重复提交问题;
  • 开发阶段用户登录可以使用请求转发,提高开发效率,但是上线后需要改为重定向。

标签:redirect,重定向,跳转,客户端,转发,forward,页面,请求
来源: https://blog.csdn.net/weixin_53186633/article/details/122125949

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有