为什么Fiddler打破了我网站的重定向?

时间:2008-10-29 06:37:17

标签: fiddler

为什么使用Fiddler有时会在页面转换时破坏我的网站。

服务器端重定向后 - 在http响应中(如Fiddler中所见)我得到了这个:

对象移动

对象已移至此处。

该站点是ASP.NET 1.1 / VB.NET 1.1 [原文]站点。

Fiddler为什么不去找我?我不明白。

开发时我对这个问题很好,但我担心其他代理服务器可能会导致“真正的客户”出现此问题。我甚至不清楚到底发生了什么。

3 个答案:

答案 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