Почему все пользовательские агенты браузеров начинаются с «Mozilla /»?

211

Строки пользовательских агентов всех популярных браузеров, даже Internet Explorer, начинаются с Mozilla/. Почему это так?

sashaeve
источник
2
Пользовательские агенты использовались, чтобы сообщать веб-серверам: « Я не случайная чушь; Я также поддерживаю функции, которые эти поддерживают. Пожалуйста, не допускайте дискриминации против меня ». Следовательно, пользовательский агент браузера, в котором есть все остальные.
Константин Ван

Ответы:

286

Это длинная и грустная история .

В итоге:

  1. Браузер Mozilla выпускается вместе с User-Agent Mozilla/1.0 (Win3.1). Он публично переименован в Netscape, но в своем User-Agent он сохраняет свое первоначальное имя.
  2. Internet Explorer выпущен. Он подделывает Netscape, запуская его User-Agent, Mozilla/потому что веб-серверы обычно перехватывали браузер и обслуживали страницы с фреймами - функция, поддерживаемая как Netscape, так и IE, но не другими браузерами той эпохи, - только для Netscape.
  3. Со временем Gecko, Konqueror, Opera, Safari и Chrome решили аналогичным образом подделать User-Agent какого-то предыдущего браузера, чтобы манипулировать веб-страницами, отслеживающими браузер, для правильного понимания функций их браузера. В рамках этого спуфинга все браузеры запускают свои пользовательские агенты Mozilla/, как это делали браузеры до этого. В результате появляется множество других глупостей, например, современный пользовательский агент Chrome, который одновременно претендует на звание Mozilla, Chrome, Safari и «как Gecko».
Джейсон Крейтон
источник
18
Обратите внимание, что здесь "Mozilla" - это не текущий проект с открытым исходным кодом с таким именем, а оригинальное кодовое имя Netscape, которое, как считается, относится к "Убийце мозаики". Кодовое имя было многократно использовано много лет спустя для проекта с открытым исходным кодом, чей движок рендеринга - «Gecko», упомянутый здесь.
IMSoP
75
И вот мы в 2015 году все еще увековечиваем глупости. Строка агента пользователя MS Эджа есть Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.1.
filoxo
18
Неудивительно, что это трудно сделать в браузере, все они притворяются друг другом!
Sarsaparilla
3
Войны браузеров не обошлись без жертв.
Pikamander2
11
Если в userAgentString такой беспорядок, то почему он не устарел и / или не удален?
Мелвин Авраам
29

Я думаю, что это было связано с: http://en.wikipedia.org/wiki/User_agent#User_agent_spoofing

Еще в первые дни Netscape (кодовое имя Mozilla) был основным конкурентом IE, и они хотели предотвратить отклонение сайтов, отклоняющих браузеры, кроме Netscape.

Майк Му
источник
10

Как упомянул @Jason "Это длинная история". Подводя итог этой истории, «каждый браузер притворяется Mozilla»

Попробовав все, я наконец-то воспользовался: http://www.useragentstring.com/

Вы можете использовать вышеуказанный веб-сайт, чтобы получить отформатированный пользовательский агент и ОС.
У них есть API, который вы можете использовать напрямую ...

Абхишек Гоэль
источник
1
Педантичная коррекция: каждый браузер, включая Mozilla, притворяется Netscape, чьим пользовательским агентом стала Mozilla. Тот факт, что кодовое имя использовалось повторно, только добавляет путаницы.
IMSoP
Хотя кодовая база Mozilla и Firefox изначально была частью Netscape. Вот почему многие из внутренних API Firefox имеют префикс «ns».
Ли Райан
2

Потому что именно так Netscape идентифицировал себя, и Microsoft хотела работать с сайтами, которые будут обнаруживать Netscape и отвергать все остальное.

billpg
источник
1

Причиной этому являются печально известные браузерные войны .

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

Я нахожу удивительным, что до сих пор не решена. Так как userAgentне может быть безопасно удалено по устаревшим причинам, почему не была введена какая-то новая функция, четко идентифицирующая браузер? Да, в большинстве случаев вам не нужно обнаружение в браузере, а скорее обнаружение функций, но это не встроенный JS!

много
источник
0

Mozilla / 5.0 - это общий маркер, который говорит, что браузер совместим с Mozilla, и сегодня он распространен почти во всех браузерах. для более подробной информации нажмите здесь

Панкадж Чаухан
источник
2
Это немного вводит в заблуждение - обратите внимание, что упоминаемый «Mozilla» на самом деле является браузером Mozilla (Mosaic-killer), который был переименован в Netscape перед выпуском (и о котором большинство читателей, вероятно, никогда не слышали под его первоначальным названием), - нет Mozilla - некоммерческое сообщество свободного программного обеспечения, которое существует до сих пор.
Марк Амери