转发和重定向的区别
一句话:转发是服务器行为,重定向是客户端行为
转发和重定向的过程:
客户端浏览器发送http请求---->web服务器接收此请求---->调用web容器内部的方法在容器内部完成请求处理和转发动作,---->将目标资源发送到客户端浏览器.
就好比A同学对B同学说:想看一下C同学的笔记,于是B同学把C的笔记拿过来抄了一份,B将笔记给了A同学,这就是转发.
而对于重定向来说,B同学是直接告诉A:"C现在在哪,你自己去找C要吧"
从地址栏分析
forward是服务器请求资源,服务器直接访问的地址是URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器, 浏览器根本不知道服务器发送的内容是从哪里来的,所以他的地址还是当前的URL
redirect:是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以显示的是新的URL