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

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


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


Ответы (6)


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

В итоге:

  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».
person Jason Creighton    schedule 11.07.2009
comment
Нравится ссылка, но также проверьте ссылку Майка Му в Википедии для получения дополнительной информации. - person Curtis Tasker; 11.07.2009
comment
Обратите внимание, что Mozilla здесь не является текущим проектом с открытым исходным кодом с таким названием, а исходным кодовым названием Netscape, которое, как считается, относится к Mosaic Killer. Кодовое имя было повторно использовано много лет спустя для проекта с открытым исходным кодом, движком рендеринга которого является упомянутый здесь Gecko. - person IMSoP; 06.02.2014
comment
И вот мы в 2015 году, продолжая увековечивать глупость. Строка пользовательского агента MS Edge — 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. - person filoxo; 04.08.2015
comment
Неудивительно, что трудно определить браузер, они все притворяются друг другом! - person Sarsaparilla; 14.11.2018
comment
Браузерные войны не обошлись без жертв. - person Pikamander2; 07.05.2019
comment
Если userAgent String такой беспорядок, то почему он не устарел и/или не удален? - person Melvin Abraham; 03.06.2019
comment
@MelvinAbraham Это все еще полезно, потому что не все запросы исходят из браузеров. Например, вам может потребоваться сравнить трафик браузера и сервера (API). - person Dagrooms; 09.09.2019
comment
Бонусный балл за связанную статью, довольно веселый. И было много радости - person marcovtwout; 10.06.2020

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

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

person Mike Mu    schedule 11.07.2009

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

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

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

person Abhishek Goel    schedule 14.06.2013
comment
Педантическая поправка: каждый браузер, включая Mozilla, притворяется Netscape, чей user-agent начинался с Mozilla. Тот факт, что кодовое имя было повторно использовано, только добавляет путаницы. - person IMSoP; 06.02.2014
comment
Однако кодовая база Mozilla и Firefox изначально была частью Netscape. Вот почему многие внутренние API Firefox имеют префикс ns. - person Lie Ryan; 10.12.2014

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

person billpg    schedule 11.07.2009

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

person Pankaj Chauhan    schedule 05.07.2017
comment
Это немного вводит в заблуждение — обратите внимание, что Mozilla, о которой идет речь, на самом деле является браузером Mozilla (Mosaic-killer), который перед выпуском был переименован в Netscape (и о котором большинство читателей, вероятно, никогда не слышали под его первоначальным названием) — не Mozilla — некоммерческое сообщество свободного программного обеспечения, существующее до сих пор. - person Mark Amery; 29.08.2017

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

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

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

person lot    schedule 24.06.2019