Я только что заметил, что в то время как все остальные браузеры, похоже, имеют свои собственные строки user agent, в Microsoft Edge они выглядят примерно так:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Почему в нем есть Mozilla, Chrome и Safari, а не только Edge?
решение1
Так почему же в нем есть Mozilla, Chrome и Safari, а не только Edge?
Разработчики веб-страниц просто ленивы и пытаются запретить посетителям использовать определенные браузеры, поскольку хотят использовать более простую структуру, которая поддерживается только определенными браузерами.
Это также преднамеренное решение дизайна, чтобы ограничить полезность проверок user-agent. Это решение, вероятно, основано на том факте (с точки зрения разработчиков Spartan/Edge), что в прошлом веб-сайты искали специально IE и уведомляли пользователей о необходимости использовать другой браузер.
Поскольку Edge/Spartan был первой попыткой Microsoft модернизировать движок Trident, а целью Edge/Spartan было соответствовать набору функций (Blink, AppleWebKit и Gecko) того времени, пользовательский агент, просто рекламирующий себя как все, является одним из способов помешать разработчикам веб-страниц легко ориентироваться на Edge так же, как они ориентировались на IE.
Многие веб-сайты, которые вы посещаете сегодня, не будут отображаться в IE, поскольку они не закодированы должным образом и обычно отображают страницу так, как если бы она отображалась в старом браузере, хотя Internet Explorer 11 поддерживает многие из новых веб-стандартов. Некоторые страницы будут отображаться некорректно в IE, но при этом будут прекрасно работать в других браузерах, таких как Chrome или Firefox.
Также существует проблема с прерывистой прокруткой, которая не исчезает на некоторых веб-сайтах даже после отключения плавной прокрутки, а в некоторых случаях важные элементы не отображаются, поскольку веб-страница идентифицирует ваш браузер как IE.
Новый движок Spartan от Microsoft маскируется под Chrome
Chrome и Firefox также делают нечто подобное:
Mozilla/5.0 (Windows NT XY; WOW64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/50.0.2657.0 Safari/537.36,gzip(gfe),gzip(gfe)"
Стоит отметить, что пользовательский агент IE11 похож:
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) как Gecko
решение2
Edge притворился Chrome, а Chrome притворился Safari, а Safari притворился Mozilla. И Edge использовал EdgeHTML, но не раскрыл его, и Chrome использовал Blink, но не раскрыл его, но Chrome притворился WebKit. И Webkit притворился KHTML, а KHTML притворился Gecko. И путаница чрезвычайно распространилась по всему вебу.
Взято изКаково имя строки User Agent для Microsoft Edge?комментарий отКлод
Строка Microsoft Edge UA:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Я подробно расскажу почему в этом посте в блоге.
Недавно Neowin сообщил, что новый браузер Microsoft для Windows 10, Spartan, использует строку Chrome UA,«Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0». Это сделано намеренно.
Вы также заметите, что вся строка заканчивается на «Edge/12.0», чего нет в Chrome.
Я должен отметить, что это не кардинальный отход от того, что Microsoft сделала с IE 11, который в Windows 8 выглядит так: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0), как и Gecko, как объясняется в этом посте.
Что отслеживает User Agent?
Часто веб-разработчики используют UA sniffing для обнаружения браузера. Mozilla хорошо объясняет это в своем блоге:
Обслуживание различных веб-страниц или сервисов для различных браузеров обычно является плохой идеей. Интернет должен быть доступен всем, независимо от того, какой браузер или устройство они используют. Существуют способы разработки веб-сайта для постепенного улучшения его на основе доступности функций, а не путем ориентации на определенные браузеры.
Вот замечательная статья, объясняющая историю User Agent.
Часто ленивые разработчики просто ищут строку UA и отключают контент на своем сайте, основываясь на том, какой браузер, по их мнению, использует посетитель. Internet Explorer 8 — это распространенная причина разочарования разработчиков, поэтому они часто проверяют, использует ли пользователь ЛЮБУЮ версию IE, и отключают функции.
Команда Edge более подробно описывает это в своем блоге.
Все строки пользовательских агентов содержат больше информации о других браузерах, чем о самом используемом вами браузере — не только токены, но и «осмысленные» номера версий.
Строка UA Internet Explorer 11:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) как Gecko
Строка Microsoft Edge UA:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Патрик Х. Лауке в дискуссиях W3C метко охарактеризовал свойство userAgent как «постоянно растущий пакет лжи». («или, скорее, балансирующий акт добавления достаточного количества устаревших ключевых слов, который не приведет к немедленному отказу старого кода анализа UA, при этом все еще пытаясь передать немного действительно полезной и точной информации»).
Мы рекомендуем веб-разработчикам избегать UA sniffing как можно больше; современные функции веб-платформы почти все легко обнаруживаются. Например,Модернизрбиблиотека — это фантастический и простой способ обнаружения особенностей.
За последний год мы видели несколько сайтов UA-sniffing, которые были обновлены для обнаружения Microsoft Edge… только чтобы предоставить ему устаревший путь кода IE11. Это не лучший подход, поскольку Microsoft Edge соответствует поведению «WebKit», а не поведению IE11 (любые различия Edge-WebKit являются ошибками, которые мы хотим исправить).
По нашему опыту, Microsoft Edge лучше всего работает на путях кода 'WebKit' на этих сайтах. Кроме того, с появлением Интернета на более широком спектре устройств, пожалуйста, предположите, что неизвестные браузеры хороши – пожалуйста, не ограничивайте свой сайт работой только на небольшом наборе известных браузеров. Если вы сделаете это, ваш сайт почти наверняка сломается в будущем.
Заключение
Представляя строку Chrome UA, мы можем обойти уловки, которые используют эти разработчики, чтобы предоставить пользователям наилучший опыт.
Взято изКаково имя строки User Agent для Microsoft Edge?ответ отДэйв Войлс.