request转发、重定向

来源:互联网 发布:java 防止js脚本注入 编辑:程序博客网 时间:2024/05/19 20:20

区别一:

重定向时浏览器上的网址改变

转发是浏览器上的网址不变

forward 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然
后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中
还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器
会用刚才请求的所有参数重新请求,所以session,request 参数都可以获取。

区别二:

重定向实际上产生了两次请求

转发只有一次请求

 

重定向图解:(向客户端发出两次request请求)

 

发送请求 -->服务器运行-->响应请求,返回给浏览器一个新的地址与响应码-->浏览器根据响应码,判定该响应为重定向,自动发送一个新的请求给服务器,请求地址为之前返回的地址-->服务器运行-->响应请求给浏览器

 

转发图解:(只向服务器发出一次请求)

 

发送请求 -->服务器运行-->进行请求的重新设置,例如通过request.setAttribute(name,value)-->根据转发的地址,获取该地址的网页-->响应请求给浏览器

 

区别三:

重定向时的网址可以是任何网址

转发的网址必须是本站点的网址

原创粉丝点击