转发和重定向
概念
forward(转发):
是在服务器中执行的
服务器对用户的请求进行处理,如果有跳转到其他页面的请求,那就产品能够服务器中,将其他页面,返回给客户端
正因为是在服务器中进行的,所以转发过程中,页面转换的时候,request 中的数据,不会丢失
其显示的特征,是地址栏中的地址,不会改变
是一次请求,一次响应
redirect(重定向):
如果有重定向的需求
服务器会给客户端发送一个访问地址
客户端会再借着这个访问地址,去访问服务器,这样,就达成了页面跳转的目的
其显示的特征,是地址栏中的地址会发生改变(毕竟是服务器让客户端再去访问一次的,地址栏中改变的地址,也是服务器传给客户端的地址)
是一次请求,两次响应
区别
-
从地址栏显示来说
forward
是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect
是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个