所有流行浏览器的用户代理字符串,甚至 Internet Explorer 的,都以Mozilla/
. 为什么会这样?
6 回答
这是一个漫长而悲伤的故事。
总之:
- Mozilla 浏览器发布,带有 User-Agent
Mozilla/1.0 (Win3.1)
。它已公开重命名为 Netscape,但在其 User-Agent 中仍保留其原始名称。 - Internet Explorer 发布。它通过启动它的 User-Agent 来欺骗 Netscape,
Mozilla/
因为 Web 服务器通常会通过浏览器嗅探并提供带有框架的页面——Netscape 和 IE 都支持这一功能,但那个时代的其他浏览器不支持——仅限于 Netscape。 - 随着时间的推移,Gecko、Konqueror、Opera、Safari 和 Chrome 各自决定类似地欺骗某些以前浏览器的用户代理,以便操纵浏览器嗅探网页以正确理解其浏览器的功能。作为这种欺骗的一部分,所有浏览器都以 开始其用户代理
Mozilla/
,就像之前的浏览器一样。很多其他的废话也会产生,比如现代 Chrome 的用户代理同时声称是 Mozilla、Chrome、Safari 和“像 Gecko”。
我认为它与:http ://en.wikipedia.org/wiki/User_agent#User_agent_spoofing
早在早期,Netscape(代号 Mozilla)是 IE 的主要竞争对手,他们希望防止被拒绝 Netscape 以外的浏览器的网站拒绝。
正如@Jason 所提到的“说来话长”。总结这个故事“它只是每个浏览器都假装是 Mozilla”
在尝试了一切之后,我终于使用了:http ://www.useragentstring.com/
您可以使用上述网站获取格式化的用户代理和操作系统。
他们有一个API,您可以直接使用...
因为这就是 Netscape 的自我定位,而微软希望与能够检测到 Netscape 并拒绝其他任何东西的网站合作。
原因是臭名昭著的浏览器大战。
简而言之 - 浏览器开始伪装成其他浏览器,因为一些网站根据浏览器请求的内容提供内容,并且他们还希望内容适用于其他浏览器。
令我惊讶的是,它至今仍未解决。既然由于userAgent
遗留原因无法安全删除,为什么没有引入一些明确识别浏览器的新功能?是的,大多数时候你不需要浏览器检测,而是一个特征检测,但它也不是内置的 JS!
Mozilla/5.0 是表示浏览器与 Mozilla 兼容的通用标记,并且在当今几乎所有浏览器中都很常见。 更多详情请点击这里