Почему определенные браузеры запрашивают все страницы на моем веб-сайте ASP.Net дважды? - PullRequest
4 голосов
/ 25 марта 2010

Firefox отправляет повторяющиеся запросы на мой веб-сайт ASP.Net. Он запросит страницу, получит ответ, затем немедленно выдаст тот же запрос снова (ну, почти то же самое - см. Ниже). Это происходит на каждой странице данного веб-сайта (но не на других). IE не делает этого, но Chrome также делает это.

Я подтвердил, что в ответе нет заголовка Location и нет Javascript или мета-тега на странице, что могло бы вызвать повторный запрос страницы (если бы какой-либо из них был верным, IE бы повторно запрашивал страницы как хорошо).

Я подтвердил это поведение на нескольких установках Firefox на нескольких машинах. Версии различаются, но все они 3.x.

Единственная разница между двумя запросами - это заголовок Accepts. Для первого запроса это выглядит так:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Для второго запроса это выглядит так:

Accept: */*

Заголовок ответа Content-Type во всех случаях:

Content-Type: text/html; charset=utf-8

Что-то еще странное - даже если Firefox запрашивает страницу дважды, использует первый ответ и отбрасывает второй . Я помещаю счетчик на страницу, которая увеличивается с каждым запросом. Я могу наблюдать, как ответы возвращаются (через прокси Чарльза). Firefox получит «1» в первый раз и «2» во второй раз. Тем не менее, по какой-то причине будет отображаться «1».

Chrome демонстрирует точно такое же поведение. Я подозреваю, что это проблема уровня протокола, учитывая разницу в заголовке Accepts, но я никогда раньше этого не видел.

1 Ответ

10 голосов
/ 25 марта 2010

Убедитесь, что у вас нет тегов img с пустыми атрибутами src.

FireFox (и, очевидно, Safari и Chrome) интерпретирует это как запрос к сайту, предоставляя вам дубликат запроса.

Существует Запрос поддержки Mozilla об этом и хорошая статья здесь , в которой обсуждается, что каждый браузер (и каждая версия) делает в этом сценарии.

...