网络基础重定向和转发的区别
内容介绍:
一、重定向
二、转发
三、重定向和转发的区别
四、URL 的变化
五、请求次数
六、数据传递
七、应用场景
八、实例演示
本次主题是网络基础重定向和转发区别。在开发中经常会遇到这两种操作。但具体区别和应用场景是什么?
一、重定向
重定向是指服务器收到请求后告诉浏览器去访问另一个URL。类似于告诉用户走错路,正确的地方在那边。重定向分为临时重定向和永久重定向。临时重定向表示资源只是暂时位置变换。将来还可能回到原位置。这种情况下。浏览器会用新地址再次发送请求。但会保留最初的请求方法。比如 post 请求。永久重定向表示资源已经永久搬迁到新位置。浏览器和搜索引擎都会将新地址作为资源的永久地址。并且浏览器会用该方法重新请求新地址。
二、转发
转发是服务器内部的操作。客户端不知道转发的发生。服务器收到请求后内部调用另一个资源来处理请求。浏览器的 URL 不会发生变化。
三、重定向和转发的区别
重定向和转发的区别是客户端和服务器端的处理不同。重定向是服务器告诉客户端一个新的 URL 。客户端再发送新的请求。转发是服务器内部直接调用资源处理请求。客户端并不知道发生了转发。
四、URL 的变化
1. 重定向
浏览器的 URL 会变成新地址。
2. 转发
浏览器的的 URL 不会改变。仍然显示的是最初的地址。
五、请求次数
1.重定向
会产生两次请求。第一次请求服务器。服务器返回新的 URL。浏览器再次请求新 URL。
2.转发
只有一次请求,服务器内部直接处理。
六、数据传递
1. 重定向
由于是两次请求,无法在请求间传递数据。
2.转发
可以在转发过程中共享 Request 对象中的数据。
七、应用场景
1. 重定向的应用场景
用户登录后跳转,用户登录成功后重定向到主页,确保用户刷新页面,不会重复提交表单。资源永久迁移。网站改版后,旧URL重定向到新URL,告诉搜索引擎新的地址,防止重复提交表单,处理表单提交时重定向到一个结果页面。避免用户刷新导致表单重复提交。
2. 转发的应用场景
服务器内部逻辑处理,在一个请求中需要调用多个不同的资源来完成。比如根据用户权限选择显示不同页面。共享数据。在转发过程中可以共享 Request 对象中的数据。比如在登录验证后,转发到不同的页面,展示用户信息。Mvc 模式在 Spring Mvc 等框架中,Controller 处理完请求后将请求转发到视图层进行展示。
八、实例演示
为了更好理解重定向和转发的区别。看一个实际的例子。假设有简单的登录系统。
1. 重定向示例
用户登录成功后,重定向到主页。
2. 转发示例
用户登录成功后转发到主页。