forward和redirect的区别
的有关信息介绍如下:forward和redirect的核心区别在于:forward是服务器内部的重定向,而redirect是客户端的行为。 forward是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。而redirect是服务器根据逻辑发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。在地址栏显示方面,forward不会改变浏览器的URL地址,因为它是服务器内部的重定向,服务器直接访问目标地址的URL,把里面的东西读取出来,但是客户端并不知道。而redirect会改变浏览器的URL地址,因为它根据逻辑发送一个状态码,告诉浏览器重新去请求那个地址。在数据共享方面,forward在整个重定向过程中使用的是同一个request对象,所以可以共享数据。而redirect会发起两次HTTP请求,分别使用不同的request对象,因此不能共享数据。在请求次数方面,forward只有一次请求,因为它不需要客户端配合。而redirect需要客户端配合,所以有两次请求。从服务器和客户端行为的角度来看,forward是服务器上的行为,不需要客户端配合。而redirect是客户端的行为,需要客户端重新发起请求。