gpt4 book ai didi

asp.net - 为什么我们不能使用 Server.Transfer() 在另一台服务器上重定向

转载 作者:行者123 更新时间:2023-12-01 07:06:08 24 4
gpt4 key购买 nike

我知道应该使用 Server.Transfer() 重定向到同一服务器上的另一个“.aspx”页面。但是为什么我不应该使用这种方法重定向到另一台服务器或 html 页面上的 aspx 页面的原因是什么?
你的回答真的很受用。

最佳答案

首先,使用 Server.Transfer 传输到另一个页面可以节省服务器资源。它不会告诉浏览器重定向,而是简单地更改 Web 服务器上的“焦点”并传输请求。这意味着您不会收到那么多的 HTTP 请求,因此减轻了 Web 服务器的压力并使您的应用程序运行得更快。

但要注意:因为“传输”过程只能在服务器上运行的那些站点上工作,所以您不能使用 Server.Transfer 将用户发送到外部站点。只有 Response.Redirect 可以做到这一点。

其次,Server.Transfer 维护浏览器中的原始 URL。这确实有助于简化数据输入技术,尽管它可能会在调试时造成混淆。

来自:Server.Transfer vs. Response.Redirect

所以,简而言之:Response.Redirect 只是告诉浏览器访问另一个页面。 Server.Transfer 有助于减少服务器请求,保持 URL 不变,并允许您传输查询字符串和表单变量。

  • Response.Redirect 对用户更加友好,因为站点访问者可以为他们重定向到的页面添加书签。
  • 传输的页面在客户端显示为与实际不同的 URL。这意味着如果您从不同的目录转移到页面,诸如相对链接/图像路径之类的东西可能无法工作。
  • Server.Transfer 有一个可选参数,用于将表单数据传递到新页面。
  • 从发布版本开始,这不再有效,因为Viewstate现在默认具有更高的安全性(EnableViewStateMac默认为true),因此新页面无法访问表单数据。您仍然可以通过请求原始处理程序来访问新页面中原始页面的值:
  • 关于asp.net - 为什么我们不能使用 Server.Transfer() 在另一台服务器上重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377765/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com