为什么使用Fiddler有时会在页面转换时破坏我的网站。
服务器端重定向后 - 在http响应中(如Fiddler中所见)我得到了这个:
对象移动
该站点是ASP.NET 1.1 / VB.NET 1.1 [原文]站点。
Fiddler为什么不去找我?我不明白。
开发时我对这个问题很好,但我担心其他代理服务器可能会导致“真正的客户”出现此问题。我甚至不清楚到底发生了什么。
答案 0 :(得分:5)
这实际上就是Response.Redirect的作用。它向用户代理发送302 - Object移动响应。然后,用户代理自动转到302响应中指定的URL。如果您需要真正的服务器端重定向而不向客户端进行往返,请尝试使用Server.Transfer。
答案 1 :(得分:3)
如果您仅使用请求构建器构建请求,则不会看到Fiddler自动遵循返回的重定向。
相反,如果您使用的是IE或其他浏览器,它通常会检查重定向标题并按照它进行操作。
对于IE而言,我认为存在一个时间偏差的情况,浏览器将无法在晦涩的情况下遵循重定向。您通常可以通过单击工具/提琴选项,并启用“服务器”和“客户端”套接字重用设置来解决此问题。
答案 2 :(得分:1)
感谢user15310,它适用于Server.Transfer
Server.Transfer("newpage.aspx", true);
首先,使用Server.Transfer传输到另一个页面可节省服务器资源。它不是告诉浏览器重定向,而只是改变Web服务器上的“焦点”并传输请求。这意味着您无法获得尽可能多的HTTP请求,因此可以减轻Web服务器的压力并使您的应用程序运行得更快。
但请注意:因为“转移”过程只能在服务器上运行的那些站点上运行,所以不能使用Server.Transfer将用户发送到外部站点。只有Response.Redirect可以做到这一点。
其次,Server.Transfer在浏览器中维护原始URL。这确实可以帮助简化数据输入技术,尽管在调试时可能会造成混淆。
这不是全部:Server.Transfer方法还有第二个参数 - “preserveForm”。如果将此设置为True,则使用Server.Transfer(“WebForm2.aspx”,True)等语句,现有的查询字符串和任何表单变量仍可用于要传输的页面。
在此处阅读更多内容: http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm