252

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

4

6 回答 6

335

这是一个漫长而悲伤的故事

总之:

  1. Mozilla 浏览器发布,带有 User-Agent Mozilla/1.0 (Win3.1)。它已公开重命名为 Netscape,但在其 User-Agent 中仍保留其原始名称。
  2. Internet Explorer 发布。它通过启动它的 User-Agent 来欺骗 Netscape,Mozilla/因为 Web 服务器通常会通过浏览器嗅探并提供带有框架的页面——Netscape 和 IE 都支持这一功能,但那个时代的其他浏览器不支持——仅限于 Netscape。
  3. 随着时间的推移,Gecko、Konqueror、Opera、Safari 和 Chrome 各自决定类似地欺骗某些以前浏览器的用户代理,以便操纵浏览器嗅探网页以正确理解其浏览器的功能。作为这种欺骗的一部分,所有浏览器都以 开始其用户代理Mozilla/,就像之前的浏览器一样。很多其他的废话也会产生,比如现代 Chrome 的用户代理同时声称是 Mozilla、Chrome、Safari 和“像 Gecko”。
于 2009-07-11T18:05:52.400 回答
31

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

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

于 2009-07-11T17:44:27.840 回答
11

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

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

您可以使用上述网站获取格式化的用户代理和操作系统。
他们有一个API,您可以直接使用...

于 2013-06-14T07:31:31.067 回答
3

因为这就是 Netscape 的自我定位,而微软希望与能够检测到 Netscape 并拒绝其他任何东西的网站合作。

于 2009-07-11T17:44:57.433 回答
3

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

简而言之 - 浏览器开始伪装成其他浏览器,因为一些网站根据浏览器请求的内容提供内容,并且他们还希望内容适用于其他浏览器。

令我惊讶的是,它至今仍未解决。既然由于userAgent遗留原因无法安全删除,为什么没有引入一些明确识别浏览器的新功能?是的,大多数时候你不需要浏览器检测,而是一个特征检测,但它也不是内置的 JS!

于 2019-06-24T12:17:36.763 回答
2

Mozilla/5.0 是表示浏览器与 Mozilla 兼容的通用标记,并且在当今几乎所有浏览器中都很常见。 更多详情请点击这里

于 2017-07-05T09:49:33.877 回答