9

Я только что заметил, что, хотя все другие браузеры, похоже, имеют свои собственные строки пользовательских агентов, 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?

2 ответа2

3

Так почему же в нем есть Mozilla, Chrome и Safari, а не только Edge?

Дизайнеры веб-страниц просто ленивы, и они пытаются заблокировать посетителей от использования определенных браузеров, потому что они хотят использовать более простую структуру, которая поддерживается только определенными браузерами.

Это также намеренное дизайнерское решение, ограничивающее полезность проверок пользовательского агента. Это решение, вероятно, основано на том факте (с точки зрения Spartan/Edge Developers), что в прошлом веб-сайты обращались именно к IE и уведомляли пользователей об использовании другого браузера.

Поскольку Edge/Spartan был первой попыткой Microsoft модернизировать движок Trident, а цель Edge/Spartan в то время заключалась в том, чтобы соответствовать набору функций (Blink, AppleWebKit и Gecko), пользовательский агент просто рекламировал себя как единый способ чтобы дизайнеры веб-страниц не могли легко ориентироваться на Edge так же, как на IE.

Многие веб-сайты, которые вы посещаете сегодня, не будут хорошо отображаться в IE, потому что они не закодированы должным образом и обычно отображают страницу так же, как в старом браузере, даже если Internet Explorer 11 поддерживает многие из новых веб-стандартов. Некоторые страницы будут некорректно отображаться в IE, при этом они отлично работают в других браузерах, таких как Chrome или Firefox.

Существует также проблема с прерывистой прокруткой, которая не исчезает для некоторых веб-сайтов даже после отключения плавной прокрутки, и в некоторых случаях важные элементы не отображаются, поскольку веб-страница идентифицирует ваш браузер как IE.

Новый спартанский движок 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

Изменения строки агента пользователя

1

Edge притворялся Chrome, а Chrome - Safari, а Safari - Mozilla. И Edge использовал EdgeHTML, но не раскрыл его, а Chrome использовал Blink, но не показал, но Chrome притворился, что использует WebKit. И Webkit выдавал себя за KHTML, а KHTML выдавал себя за Gecko. И беспорядок изобиловал чрезмерно на лице сети.

Взято из Что такое имя строки агента пользователя для 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, как объяснено в этом сообщение.

Что такое агент пользователя?

Часто веб-разработчики используют UA для обнаружения браузера. 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; функции современных веб-платформ обнаруживаются практически всеми способами. Например, библиотека Modernizr - это фантастический и простой способ обнаружения функций.

За прошедший год мы видели несколько сайтов, отслеживающих UA, которые были обновлены для обнаружения Microsoft Edge… только для того, чтобы предоставить ему устаревший путь кода IE11. Это не лучший подход, так как Microsoft Edge соответствует поведению WebKit, а не IE11 (любые различия Edge-WebKit - это ошибки, которые мы заинтересованы в исправлении).

По нашему опыту, Microsoft Edge лучше всего работает с путями кода «WebKit» на этих сайтах. Кроме того, в связи с тем, что Интернет становится доступным на более широком спектре устройств, предположите, что неизвестные браузеры хороши - пожалуйста, не ограничивайте работу своего сайта только в небольшом наборе известных браузеров. Если вы сделаете это, ваш сайт почти наверняка сломается в будущем.

Заключение

Представляя строку Chrome UA, мы можем обойти хаки, которые используют эти разработчики, чтобы предоставить пользователям лучший опыт.

Взято из Что такое имя строки агента пользователя для Microsoft Edge? ответ Дейва Войлса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .