redirect和forward区别详解

forward过程

转发,服务器端行为。web服务器把接受的请求,调用内部的方法在容器内部完成请求处理和转发动作,然后响应客户端,在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。

redirect过程

重定向,客户端行为。客户端发送http请求,web服务器接受后发送3**状态码响应及对应新的location给客客户端,客户端发现是3**响应,则自动再发送一个新的http请求,请求url是新的location地址,在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。重定向行为是浏览器做了至少两次的访问请求的。

区别

forward方式客户端肯定不知道啊,所以地址栏不变,中间过程加上其他参数地址栏也看不到,转发的url肯定不能是外部的,直接在服务器端内部的周转,所以request的参数能在新的方法里获取到,所以效率也比较高一些。redirect方式就与其相反了!

posted @ 2017-08-01 17:20  暗夜心慌方  阅读(240)  评论(0编辑  收藏  举报