2008-7-15 17:53:51
 
asp中Response.Redirect和Server.Transfer的区别
Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。
使用这种方式,页面的PR值会受到影响,对搜索引擎不太友好。偶尔为之可,如长期使用,与网站不利。    
         
        这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。    
         
  Server.Transfer    
         
        Server.Transfer方法把执行流程从当前的ASP文件转到同一服务器上的另一个ASP页面。调用Server.Transfer时,当前的ASP页面终止执行,执行流程转入另一个ASP页面,但新的ASP页面仍使用前一ASP页面创建的应答流。    
         
        如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换。    
         
    Server.Transfer方法会把表单数据或查询字符串从一个页面传递到另一个页面,也就是所有的response和request对象都会保留,就像在本页操作时一样。即你可以目标页中使用request.form("xxx")或request("xxx"),这与在跳转前页面使用完全一样。



Response.Redirect   是通知客户端浏览器(客户端浏览器,地址栏地址发生变化)跳转的。  
  而   Server.Transfer   是在服务端跳转(客户端浏览器,地址栏地址不发生变化)  
  简单的来说,Response.Redirect   需要多走一个来回。而,Server.Transfer   能少走一个。  
  Response.Redirect   对于客户端浏览来说,速度可能会慢点,但对于服务端能少些负担;  
  而Server.Transfer   对于客户端浏览会快一些(因为少走一个来回),但服务器负担会大一些。



[Blog.Const.Net.Cn]

永久链接地址:知识库 asp中Response.Redirect和Server.Transfer的区别
 
类别:知识库|浏览(763)