转发是服务器行为,重定向是客户端行为。
转发和重定向的本质区别要看它们的工作流程:
1、转发:浏览器发起一个请求后,webserver在容器内部调用方法进行各种处理(这些处理浏览器是不知道的)完成转发动作(转发到的路径必须是同一个web应用下的),将目标资源发送给客户端,浏览器不知道资源从何而来;
2、重定向:浏览器发起一个请求后,webserver向浏览器发送302状态码,浏览器接收302状态码后马上按照重定向的路径重新做一次http请求,地址栏的内容变成了重定向后的路径,由于是新的http请求所以request对象也没有被传递,重定向的路径可以是任意路径。