阅读量:3
forward和redirect都可以用于页面跳转,但有一些关键的区别:
1. forward是服务器端跳转,是在服务器内部进行的页面跳转,浏览器不知道页面发生了跳转,URL地址栏不会改变,是一个请求,一个响应。而redirect是客户端跳转,是通过向浏览器发送302状态码告诉浏览器要跳转到其他页面,浏览器收到302状态码后会请求新的URL,地址栏会改变。
2. forward的跳转是在同一个请求中完成的,可以共享request域中的数据,而redirect是两次独立的请求,因此无法共享数据。
3. forward是在服务端进行跳转,不会刷新页面,页面内容不会改变,只是服务器端返回另一个页面的内容。而redirect是浏览器发送新的请求,会重新加载页面。
4. forward是内部跳转,速度快,不会增加额外的HTTP请求开销。而redirect会增加一次额外的HTTP请求,会影响性能。