server.Transfer()和response.redirect()区别

       注意server.Transfer()和response.redirect()都是是实现页面的重定向(页面跳转), 但是两者有很大的不同 
       

 

       Response.Redirect()


        1.需要客户端(浏览器)与服务端进行两次通信
        首先浏览器向客户端发送一次请求,浏览器接受请求返回一个302状态码和新的url
        之后浏览器会对新的url发送一个请求,实现页面的跳转

        2.跳转之后浏览器显示的url发生改变

        3.使用response.redirect()从a页面跳转到b页面之后,就无法接收a页面中的表单中的数据

        4.response.redirect()可以从一个跨服务器跨站点跳转


        Server.Transfer()


        1.server.Transfer()是在IIS5.0之后才新加的

        2.server.Transfer()跳转只需要客户端和服务端一次通讯,跳转在服务端实现
        因此并不会占用较多的 HTTP 请求,因此这可以减轻服务器的压力,使你的服务器运行更快

        3.server.Transfer()实现跳转,浏览器URL上并没有看到有重定向痕迹,
        如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,
        因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换。
         
        4.使用server.Transfer()实现a页面到b页面的跳转,b页面可以接收a页面中的表单数据

        5.server.Transfer()只能从在同一服务器端的同一站点间运行,
        所以你不能用 Server.Transfer 将用户重定向到另一服务器上的站点。
 

 

        注意:其实虽然server.Transfer()的效率比response.redirect()高
        但是我们一般是使用response.redirect(),只是因为我们希望浏览器地址栏中的url发生改变
        这样用户才会明显的发现页面发生了跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值