На сайте, который получает очень большой объем трафика, небольшой процент запросов приходит следующим образом:
http://cheezburger.com/ScriptResource.axd?d=zaVpgH63ePt90pn</a> <br /> <br /> <p> <a id=
На странице реферера есть такая строка:
<script src="/ScriptResource.axd?d=zaVpgH63ePt90p8fuEYkPAKFZuziMYsiIUbmxDb-gQ23Cx78LNJNFXTqKciA4ND_frR-_r9UKsdtLPk6M08xyk6cXFSLUrbBGDlvPIf-F9w1&t=ffffffffd5e08dd5" type="text/javascript"></script>
и еще пара строк намного дальше:
<a id="login_LoginState_LoginButton" class="button1" UseSubmitBehavior="false" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("login$LoginState$LoginButton", "", true, "ctl00$Login1", "", false, true))">Log In</a>
<br />
<br />
<p>
<a id="login_LoginState_PasswordRecoveryLink" href="/forgot.aspx">Forgot Password?</a>
Получается, что часть страницы удалена. Похоже, что это происходит чаще в IE, чем в Firefox, но это может быть связано с тем, что у нас больше трафика IE, чем FireFox. У нас включено сжатие HTTP, но я не знаю, проблема ли в этом.
Итак, мой вопрос в том, что происходит и как это можно исправить?
Мы видим то же самое здесь в нашем приложении, это известная проблема IE8, которая была открыта некоторое время. Вот отчет об ошибке Microsoft Connect.
В основном на каком-то уровне IE8 просто игнорирует потерю пакетов и выполняет рендеринг, добавляя 2 потока пакетов вместе и игнорируя отсутствующий. В результате на вашем сервере несколько неверных URL-адресов. Поскольку в большинстве случаев пакеты имеют примерно одинаковый размер, вы часто будете видеть URL-адреса, которые начинаются одинаково с некоторым случайным окончанием сценария.
Что ж, SO не получает столько запросов, сколько icanhascheezburger.com, это точно :) но я могу сказать вам, что мы действительно получаем редкие запросы от браузеров, которые явно ... сломаны ... в каком-то фундаментальном смысле.
Обычно это связано с частями веб-сайта (ссылки, код и т. Д.), Созданными с помощью JavaScript.
Очевидно, браузер каким-то образом так сильно испортил код JavaScript, что полученный в результате запрос к нам полностью нарушен, что не имеет смысла. Пример. Голосование за нас выглядит так:
/posts/12345/vote/2
но иногда мы получали
/posts/true/vote/2
"правда"? Какого черта? Раньше мы смотрели на них, но теперь просто игнорируем их.
просто игнорируйте запросы, это, скорее всего, из-за сломанных прокси или ошибок DNS
Я не раз замечал, что IE начинал загрузку страницы, затем он начинает ее рендеринг до того, как закончится, что приведет к неправильному формированию ссылок. Обычно в таких случаях JS-скрипты загружаются ближе к концу страницы. На некоторых больших страницах IE загружал около половины страницы, пытался выполнить рендеринг, а затем вежливо останавливал и сбрасывал соединение с сервером, например, WTF?
В любом случае, в некоторых случаях, просто переместив JS-файлы наверх, а затем начав ближе к низу, можно решить некоторые проблемы.
С тех пор мы выбросили безумие js-линкбилдинга :)