一. 转发(forward)和重定向(redirect)的区别
参考博客:xianyadong的博客
-
forward::向前,前进的意思
-
redirect:重新使用,改签的意思
-
转发属于服务器行为 重定向属于客户端行为
-
转发:浏览器发送请求 -> 服务器接受 -> 服务器调用内部方法完成请求与转发 -> 将转发跳转之后的网页资源发送给浏览器;
-
重定向:浏览器发送请求 -> 服务器发送302状态码及新的链接地址给用户 -> 浏览器发现是302错误码,发送新请求,此请求指向新地址 -> 服务器按此请求发送网页资源。
302 found : 原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。来源:302 found的百度百科
-
区别:
转发 重定向 地址栏 不变 变化 请求次数 一次 最少两次 要求 同一容器中 无要求(新的URL) -
在sprign boot中的使用:
// 重定向 @PostMapping("/emp") public String addEmp(Empolyee empolyee){ return "redirect:/emps"; } // 转发 @PostMapping("/emp") public String addEmp(Empolyee empolyee){ return "forward:/emps"; }