`
shirlly
  • 浏览: 1657717 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

Response.Redirect和Server.Transfer的区别

    博客分类:
  • .NET
阅读更多
response.redirect 其实是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求那个新的地址,流程如下:


  浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址(服务器返回的Response.Redirect后面的地址)

PS: ASP.net里面用Response.Redirect跳转,PHP里面是Header("Location",$URL);这两种方式都是一样的原理,就是在输出的HTTP头里面加上一个Location字段,值为要跳转的目的地址,同时把返回的HTTP状态值设为302。



Server.Transfer 语句当接受地址后是直接转向后面的地址,流程如下:

  浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。



优缺点比较:

     1.Server.Transfer 只能在同一服务器端的同一站点内进行重定向;而response.redirect 没有此限制。
Server.Transfer 后面只能使用形如test.asp这样的相对路径的文件或者目录地址,不能带参数(似乎也可以带参,add By Shirlly)。比如要定向到 test.asp?id=1就只能用Response.Redirect 而不能用Server.Transfer。

     2.Server.Transfer 在服务器端直接重定向,不用像response.Redirect一样要先与浏览器通信再重定向,这样可以减轻服务器的压力,效率高。

     3.Server.Transfer 可以保留上下文信息,Server.Transfer 方法有另一个参数——"preserveForm"。如果你设置这个参数为 True,比如:Server.Transfer("WebForm2.aspx", True), 那么 querystring 和任何 form 变量都会同时传递到你定位的页面。 例:WebForm1.aspx 有一个文本框名为 TextBox1,你利用 preserveForm 为 True 传递到 WebForm2.aspx,你仍然可以用 Request.Form("TextBox1") 来取得文本框的值。

     4.Server.Transfer 不会改变客户端的浏览器地址栏内的地址,也不会更新浏览器的历史记录。而response.Redirect 则会显示重定向后的地址,也会更新浏览器的历史记录。

总结:Response.Redirect 简单地告诉浏览器访问另一个页面。Server.Transfer 有利于减少服务器请求,保持地址栏 URL 不变,允许你将 query string 和 form 变量传递到另一个页面(有一点小小的缺陷,请参见:http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920 )。
原文连接:http://www.cnblogs.com/baiyicug/archive/2008/08/27/1277729.html
分享到:
评论

相关推荐

    Response.Redirect与Server.Transfer的区别

    在ASP.NET开发中,页面跳转是常见的操作,主要涉及两种方法:Response.Redirect和Server.Transfer。它们虽然都能实现页面间的导航,但在工作原理、数据处理和用户体验上存在显著差异。 **Response.Redirect** ...

    asp.net中Response.Redirect与Server.Transfer的区别分析

    ***框架提供了多种在页面间导航的方法,其中Response.Redirect与Server.Transfer是两种常用的页面导航技术,它们各自有不同的工作机制和适用场景。在开发基于***的Web应用时,正确理解和使用这些方法对于优化用户...

    Server.Transfer,Response.Redirect的区别

    如果你读过很多行业杂志和 ASP.NET 示例,你会发现,大多数人使用 Response.Redirect 将用户引导到另一个页面,而另一些人好像偏爱于神秘的 Server.Transfer,那么,这二者有什么区别? Response.Redirect ...

    asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别

    你可以使用下面的代码将用户引导到另一个页面: Response.Redirect(“WebForm2.aspx”) 或者 Response.Redirect(“http://www.cnnas.com/”) Server.Transfer 也是通过一条语句将用户引导到另一页面,比如:Server....

    Response.Redirect 正在中止线程解决方案

    在ASP.NET中,`Response.Redirect`和`Server.Transfer`这两个方法在某些情况下也会引发此异常。这是因为在这些方法的内部,它们调用了`Response.End`,而`Response.End`的作用是立即结束HTTP响应,不再执行后续的...

    ASP.NET四种页面导航方式的比较与选择

    在ASP.NET中,常见的四种页面导航方式包括超级链接、Response.Redirect、Server.Transfer和Server.Execute。以下是对这四种方式的详细分析: 1. **超级链接**: 超级链接是最基础的导航方式,通过HTML的`<a>`标签...

    ASP.NET 重定向的几种方法小结

    本文主要总结了三种 ASP.NET 中的重定向方法:Server.Transfer、Server.Execute 和 Response.Redirect。 1. **Server.Transfer方法**: Server.Transfer方法在服务器端执行,它停止当前页面的处理并立即开始处理...

    一个空间绑定多个域名实现自动跳转的几种方法知识.pdf

    使用VBScript和ASP内置的`Response.Redirect`函数,根据`ServerVariables("SERVER_NAME")`获取的服务器名进行判断和跳转。 ```vbscript <% if Request.ServerVariables("SERVER_NAME")="www.1xx.com" then ...

    【ASP.NET编程知识】ASP.NET MVC页面重定向简单介绍.docx

    本文主要探讨了ASP.NET MVC框架中几种不同的页面重定向方法,包括Response.Redirect、Server.Transfer和Server.Execute,以及如何根据实际需求选择合适的方法。 1. Response.Redirect: Response.Redirect是客户端...

    ASP.NET 中实现页面间的参数传递

    ### ASP.NET 中实现页面间的参数传递 在ASP.NET开发中,页面间的参数传递是一项基本而重要的功能,它允许数据在不同...接下来的文章中,我们将继续探索Session、Cookie和Server.Transfer等方法在ASP.NET中的应用技巧。

    C#中的页面跳转

    首先,C#中的页面跳转主要通过两种方式来实现:Response.Redirect和Server.Transfer。 1. **Response.Redirect**: `Response.Redirect("newPage.aspx")` 这个方法会发送一个HTTP响应头给客户端浏览器,指示它去...

    ASP.NET四种页面导航方式之比较与选择

    本文将深入探讨四种主要的页面导航方式:超级链接、Response.Redirect、Server.Transfer和Server.Execute,分析它们的特点、优缺点以及适用场景。 一、超级链接 超级链接是最直观、最基础的页面导航方式。HTML中的`...

    ASP实现网页跳转

    实现网页跳转通常有两种方法:Response.Redirect和Server.Transfer。 1. **Response.Redirect方法** `Response.Redirect` 是ASP中最常用的网页跳转方式。它会向客户端浏览器发送一个HTTP响应,告诉浏览器加载一个...

    aspnet跳转页面的三种方法比较

    本文将深入探讨三种主要的页面跳转方法:Response.Redirect、Server.Transfer和HtmlHelper.ActionLink,并对比它们各自的特性和应用场景。 1. **Response.Redirect** - **原理**:Response.Redirect方法向客户端...

    asp.net跳转页面的三种方法比较

    ### ASP.NET中页面跳转的三种方法:Response.Redirect、Server.Transfer与Server.Execute 在ASP.NET开发过程中,页面跳转是一项非常常见的操作。根据不同的应用场景,可以选择不同的方式来实现页面跳转,主要有`...

    ASP.NET MVC 3实现类似于Server.Transfer的效果

    虽然ASP.NET MVC框架没有内置类似Server.Transfer的机制,但通过自定义ViewEngine和利用ActionFilterAttribute,我们可以灵活地控制视图的渲染流程,实现服务器端的页面跳转,为开发人员提供了更多的控制权和灵活性...

    asp.net2.0系列教程第2章_第3节

    ASP.NET 2.0系列教程的第2章第3节主要关注的是服务器端的页面跳转技术,包括`Server.Transfer`和`Response.Redirect`两种方法。这两种方法在Web应用程序中都用于实现页面间的导航,但它们的工作原理和应用场景有所...

Global site tag (gtag.js) - Google Analytics