请求转发(forward)和重定向(redirect)是在Web开发中常用的两种页面跳转方式,
区别:
-
请求转发是服务器内部的跳转方式,而重定向是客户端的跳转方式。
-
请求转发是在服务器端完成的,服务器直接将请求转发给目标页面进行处理,客户端并不知道发生了跳转。而重定向是通过向客户端发送特定的响应状态码和URL,让客户端重新发送请求到新的URL。
-
请求转发是一次请求,客户端的URL地址不会改变。而重定向会导致客户端发起新的请求,URL地址会改变
-
请求转发可以共享请求的数据(request attribute),因为是在同一个请求中进行的。而重定向无法共享数据,因为是两次独立的请求。
-
请求转发的性能通常比重定向更好,因为它减少了一次客户端与服务器之间的通信。