Почему Fiddler ломает перенаправления моего сайта? - PullRequest
0 голосов
/ 29 октября 2008

Почему использование Fiddler иногда нарушает работу моего сайта при переходах по страницам.

После перенаправления на стороне сервера - в ответе http (как в Fiddler) я получаю следующее:

Объект перемещен

Объект перенесен сюда.

Сайт является сайтом ASP.NET 1.1 / VB.NET 1.1 [sic].

Почему Фиддлер просто не идет туда за мной? я не понимаю.

Меня устраивает эта проблема при разработке, но я беспокоюсь, что другие прокси-серверы могут вызвать эту проблему для «реальных клиентов». Я даже не совсем понимаю, что происходит.

Ответы [ 3 ]

5 голосов
/ 29 октября 2008

Это именно то, что делает Response.Redirect. Он отправляет 302 - Object перемещенный ответ пользовательскому агенту. Затем пользовательский агент автоматически переходит на URL, указанный в ответе 302. Если вам нужно реальное перенаправление на стороне сервера без обращения к клиенту, попробуйте Server.Transfer.

3 голосов
/ 09 мая 2009

Если вы просто сконструировали запрос, используя построитель запросов, вы не увидите, что Fiddler автоматически последует за возвращенным перенаправлением.

Напротив, если вы используете IE или другой браузер, он обычно проверяет заголовок перенаправления и следует ему.

В частности, для IE, я полагаю, что есть случай, когда браузер не сможет выполнить перенаправление в непонятных ситуациях. Это часто можно исправить, щелкнув «Инструменты / Параметры Fiddler» и включив настройки повторного использования сокетов «Сервер» и «Клиент».

1 голос
/ 22 марта 2011

Спасибо пользователю 15310, он работает с сервером. Перевод

Server.Transfer("newpage.aspx", true);

Во-первых, перенос на другую страницу с использованием Server.Transfer экономит ресурсы сервера. Вместо того, чтобы сообщать браузеру о перенаправлении, он просто меняет «фокус» на веб-сервере и передает запрос. Это означает, что вы получаете не так много HTTP-запросов, что снижает нагрузку на ваш веб-сервер и ускоряет работу приложений.

Но будьте внимательны: поскольку процесс «переноса» может работать только на тех сайтах, которые работают на сервере, вы не можете использовать 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

...