为什么所有的浏览器'用户代理以“;Mozilla/"?

所有流行的浏览器的用户代理字符串,甚至Internet Explorer的,都以Mozilla/开头。为什么会这样呢?

48292 次浏览

我认为它与:http://en.wikipedia.org/wiki/User_agent#User_agent_spoofing有关

在早期,网景(代号Mozilla)是IE的主要竞争对手,他们希望避免被拒绝网景以外浏览器的网站拒绝。

因为这就是网景对自己的定位,而微软想要与那些能够检测网景并拒绝其他任何东西的网站合作。

它是又长又悲伤的故事

总而言之:

  1. Mozilla浏览器发布,用户代理Mozilla/1.0 (Win3.1)。它被公开地重新命名为Netscape,但在其用户代理中它保留了原来的名称。
  2. ie浏览器发布。它通过Mozilla/启动它的User-Agent来愚弄Netscape,因为web服务器通常是浏览器嗅探和提供带有框架的页面——Netscape和IE都支持这个功能,但那个时代的其他浏览器不支持——仅对Netscape开放。
  3. 随着时间的推移,Gecko, Konqueror, Opera, Safari和Chrome都决定类似地欺骗一些以前浏览器的用户代理,以操纵浏览器嗅探网页,以正确理解其浏览器的功能。作为欺骗的一部分,所有浏览器都以Mozilla/开始它们的用户代理,就像它们之前的浏览器一样。还有很多其他无意义的结果,比如现代Chrome的User-Agent同时声称自己是Mozilla、Chrome、Safari和“像Gecko”。

正如@Jason所说,“说来话长”。总结一下这个故事“只是每个浏览器都假装是Mozilla”

在尝试了一切之后,我终于使用了:http://www.useragentstring.com/

您可以使用上述网站获得格式化的用户代理和操作系统。< br > 它们有一个API,你可以直接使用

Mozilla/5.0是表示浏览器与Mozilla兼容的通用令牌,几乎适用于今天的所有浏览器。 点击这里

原因是臭名昭著的浏览器之战

简而言之,浏览器开始伪装成其他浏览器,因为一些网站根据浏览器的要求提供内容,他们也想要为其他浏览器提供内容。

令人惊讶的是,这个问题到今天还没有解决。既然userAgent由于遗留的原因不能安全地删除,为什么没有引入一些明确识别浏览器的新功能呢?是的,大多数时候你不需要浏览器检测,而是一个功能检测,但它也不是内置的JS !