Предварительная сборка 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 теорий заговора.
Исторически, производители браузеров и разработчики танцевали пользовательский агент с самого начала Интернета. Проблема начинается, когда вы пытаетесь создать кросс-браузерный веб-сайт:
- Разработчик создает веб-сайт в браузере X, а затем тестирует его в браузере Y.
- Браузер Y не работает, поэтому разработчик пишет процедуры обнаружения браузера Y и обслуживает другой код. Все счастливы.
- Затем обновляется браузер Y — но веб-сайт теперь не работает, потому что он обслуживает устаревший код.
- Поставщик изменяет строку пользовательского агента: обнаружение не выполняется, и сайт снова работает. Все счастливы, и мы возвращаемся к первому шагу.
Посмотрите на начало строки пользовательского агента 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, отойти от браузера и начать новую карьеру.