Response.Redirect vs Server.Transfer - 重定向为“建议”

时间:2011-01-11 17:24:16

标签: asp.net

所以我在Response.Redirect上读了一个article,与Server.Transfer相比,它表示“它就像一个建议”,无论客户是否愿意。这是什么意思?是否有某种事件可以让用户说“好吧我不想重定向到那个页面”?

4 个答案:

答案 0 :(得分:6)

Server.Transfer将立即执行新页面并将结果发送给客户端 客户端停留在原始URL上看不到任何异常。

Response.Redirect发送一个名为HTTP 302的特殊代码,告诉客户将新请求发送到其他网址。

答案 1 :(得分:3)

的Response.Redirect

Response.Redirect将导航到指定的网址。

From MSDN

  

将忽略任何响应正文内容,例如原始URL指示的页面中显示的HTML文本或Response.Write文本。但是,此方法会将由原始URL指示的此页面设置的其他HTTP标头发送到客户端。生成包含重定向URL作为链接的自动响应主体。 Redirect方法发送以下显式标头,其中URL是传递给方法的值,如以下代码所示:

Server.Transfer的

Server.Transfer将执行传入的网址,但保持从。转移的网址。

From MSDN

  

使用Transfer方法时,所有内置对象的状态信息都包含在传输中。这意味着维护了在会话或应用程序范围中分配了值的任何变量或对象。此外,Request集合的所有当前内容都可用于接收传输的.asp文件。


这里是an article讨论并比较两者。

答案 2 :(得分:1)

在某种意义上,它就像一个“建议”,当客户端请求重定向的URL时,服务器会响应“该对象已移动...在此处找到它”。当您执行Server.Transfer时,您会立即回复您要转移的页面的输出。

在任何一个过程中都没有任何内容可以为用户提供任何选择...您必须使用200响应并通过逻辑向用户实施选择。

答案 3 :(得分:1)

Response.Redirect涉及到服务器的“往返”,而Server.Transfer通过“避免往返”来节省服务器资源。它只是将Web服务器的焦点更改为其他页面,并将页面处理转移到其他页面。