Response.Redirect和Server.Transfer的区别?

版权声明: https://blog.csdn.net/hemingyang97/article/details/82053924

Response.RedirectServer.Transfer的区别?

 

在ASP.NET中,在后台传值方式目前大多都是用 Response.Redirect("页面地址") 来重定向页面的,但是现在还有一种方式也可以达到重定向页面的作用,而且在某些时刻会起到一种很棒的效果,那就是使用 Server.Transfer("页面地址") 来重定向地址。

 

 

Response.Redirect :Response.Redirect 会将地址输出至浏览器,执行重定向操作。但是请注意,在程序执行到Response.Redirect("页面地址") 语句时,会立即中断当前页面的生命周期,直接向客户端返回信息,让客户端进行重定向操作。这个时候页面URL将会显示重定向后的地址。

 

 

Server.Transfer :Server.Transfer 是一个很奇特的方法。当使用 Server.Transfer 方法重定向页面时,虽然页面也会被重定向至指定页,但是并不会在浏览器的URL上体现出来,并且若重定向的页面后有参数,也不会显示在浏览器的URL上。

简单的阐述:

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

 

扫描二维码关注公众号,回复: 3090468 查看本文章

 

数据保密性:
1、Response.Redirect后地址会变成跳转后的页面地址。
2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。
传递的数据量(即:网址后附带的参数):
利用网址来传递数据,必须注意的是网址的编码,要编码的原因是,有此字符有特殊意义,例如:&,它是参数的分隔符号,解决的方法是必须修改: 调用Server.URLEncode(变量)对要传递的数据加以编码。
1、Response.Redirect能够传递的数据以2KB为限。
2、传递的数据超过2KB时,务必使用Server.Transfer。

 

简记:Response.RedirectServer.Transfer的区别?

Server.Transfer仅是服务器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;Response.Redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

Server.Transfer是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 这个过程中浏览器和Web服务器之间经过了一次交互。

Response.Redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求。这个过程中浏览器和Web服务器之间经过了两次交互。

 

猜你喜欢

转载自blog.csdn.net/hemingyang97/article/details/82053924