Статьи

Как выглядит IE11, но пахнет Firefox?

Предварительная сборка Windows Blue, преемника Microsoft для Windows 8, была опубликована несколько дней назад. Это могло быть преднамеренным или непреднамеренным, но ОС была установлена , рассечена и сообщена через Интернет.

Новая ОС содержала раннюю версию Internet Explorer 11. Очень ранняя версия. Вероятно, ближе к IE10.01. Новых технологий мало, чтобы сообщить, но одно обновление вызвало бурную полемику в SlashDot и Neowin.net : строка пользовательского агента IE11, кажется, олицетворяет Firefox…

Mozilla / 5.0 (IE 11.0; Windows NT 6.3; Trident / 7.0; .NET4.0E; .NET4.0C; rv: 11.0), как Gecko

Строка MSIE исчезла, и появилось подозрительное утверждение типа «Gecko». Кий 1000 теорий заговора.

Исторически, производители браузеров и разработчики танцевали пользовательский агент с самого начала Интернета. Проблема начинается, когда вы пытаетесь создать кросс-браузерный веб-сайт:

  1. Разработчик создает веб-сайт в браузере X, а затем тестирует его в браузере Y.
  2. Браузер Y не работает, поэтому разработчик пишет процедуры обнаружения браузера Y и обслуживает другой код. Все счастливы.
  3. Затем обновляется браузер Y — но веб-сайт теперь не работает, потому что он обслуживает устаревший код.
  4. Поставщик изменяет строку пользовательского агента: обнаружение не выполняется, и сайт снова работает. Все счастливы, и мы возвращаемся к первому шагу.

Посмотрите на начало строки пользовательского агента IE11: Mozilla / 5.0 . Ранние версии IE должны были маскироваться под Netscape, потому что это был доминирующий браузер, и многие сайты отказывались возвращать контент чему-либо еще. Ситуация продолжается и сегодня — IE, Chrome, Safari и Firefox начинаются с «Mozilla / 5.0»…

IE10:
Mozilla / 5.0 (совместимый; MSIE 10.0; Windows NT 6.2; WOW64; Trident / 6.0)

Chrome 25:
Mozilla / 5.0 (Windows NT 6.2; WOW64) AppleWebKit / 537.22 (KHTML, как Gecko) Chrome / 25.0.1364.172 Safari / 537.22

iPad Safari 6:
Mozilla / 5.0 (iPad; CPU OS 6_0, как Mac OS X) AppleWebKit / 536.26 (KHTML, как Gecko) Версия / 6.0 Mobile / 10A5355d Safari / 8536.25

Firefox 19:
Mozilla / 5.0 (Windows NT 6.2; WOW64; rv: 19.0) Gecko / 20100101 Firefox / 19.0

Вы также заметите, что и Chrome, и Safari используют ту же строку ‘like Gecko’, что и IE11. Я не помню, чтобы эта бомба попала в заголовки?

Самым большим изменением в IE11 является удаление MSIE. Я подозреваю, что это было сделано по одной причине: чтобы сайты с неправильным кодом IE6 / 7/8 не использовались в современных версиях браузера. Последние выпуски движка IE Trident ближе к Gecko или WebKit, чем к самим предыдущим версиям. Удаляя строку «MSIE», Microsoft нарушает код обнаружения и заставляет многие сайты работать должным образом.

Дело в том, что все это не имеет значения . Если вы просматриваете браузер, вы почти наверняка делаете что-то не так ! В то время как это кажется очевидным решением, сниффинг браузера является хрупкой техникой, которая создает больше проблем с обслуживанием, чем предотвращает. Если вы знаете кого-то, кто нюхает, предложите ему закрыть свою IDE, отойти от браузера и начать новую карьеру.