从SpringMvc了解转发和重定向机制

1.1 为什么用户登录成功后需要进行重定向?

重定向场景: 因为重定向会修改浏览器地址, 所以 form 提交应该使用重定向, 以免用户刷新页面导致form重复提交.

场景:需要携带请求域request的相关参数 在后台获取使用的时候

重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应码,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。


结合生活场景:

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。


3.两者的区别?

地址栏 不发生变化 发生变化 跳转 服务器跳转1次 浏览器和服务器至少2此跳转 请求域中数据(传输中的信息) 不会丢失 会丢失 访问外部资源 不可以访问自己web应用以外的资源 可以访问自己web应用以外的资源

4.代码实现调用

经验分享 程序员 微信小程序 职场和发展