(1)Server.Transfer在服务器端完成,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以客户端浏览器中的URL地址是不会改变的,这个过程中浏览器和Web 服务器之间经过了一次交互;Response.Redirect是客户端完成,是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以客户端浏览器中的URL地址是会改变的.这个过程中浏览器和Web 服务器之间经过了两次交互。 (2)Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。
(3)Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转到任何URL地址。]
(4)Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect则只能借助URL中带参数或是结合(QueryString、Session、Cookie、Application)办法把各种类型的值传到新的页面。 |