Browser 为什么浏览器仍然欺骗用户代理?

Browser 为什么浏览器仍然欺骗用户代理?,browser,user-agent,Browser,User Agent,我知道浏览器最初欺骗用户代理是为了进行功能检测。但我想知道为什么他们仍然这样做。我不认为用户代理欺骗在遵守标准的现代时代有一席之地;与web初期的情况相比,对于web开发人员来说,这基本上是一个浏览器天堂 有人可能会说这是为了所有旧代码的向后兼容性。这是唯一的原因吗?经过这么长时间,我认为浏览器供应商将目光投向那些代码陈旧的网站之外。这是正在进行中,还是这些用户代理刚刚被浏览器艰难时期的遗物所遗忘 此外,目前大多数功能检测似乎都是用JavaScript完成的,这使得用户代理的部分功能检测用例变得

我知道浏览器最初欺骗用户代理是为了进行功能检测。但我想知道为什么他们仍然这样做。我不认为用户代理欺骗在遵守标准的现代时代有一席之地;与web初期的情况相比,对于web开发人员来说,这基本上是一个浏览器天堂

有人可能会说这是为了所有旧代码的向后兼容性。这是唯一的原因吗?经过这么长时间,我认为浏览器供应商将目光投向那些代码陈旧的网站之外。这是正在进行中,还是这些用户代理刚刚被浏览器艰难时期的遗物所遗忘


此外,目前大多数功能检测似乎都是用JavaScript完成的,这使得用户代理的部分功能检测用例变得无关紧要。

因为现在我们有多种可能的用户代理,如Iphone5s、Galaxy SIII、IPad 2等。因为有时需要以不同的方式处理站点功能,例如,处理特定规则

在具有用户需求的场景中,您可以这样想:

该网站应该只能为平板电脑与客户聊天。 在移动设备中,由于其体积较小,因此不应使用。
因此,因为我们有多个设备,我们有时不得不以不同的方式处理,以给用户一个很好的体验

我不知道他们有。一些较小的浏览器用户代理可能无法被服务器识别,因此它们会宣布自己是主要的代理之一,这样它们就不会被忽略或被视为恶意的,但是,否则,您是对的;不需要这样做,主要的不需要这样做。

这是用户代理的正常使用情况,而不是用户代理欺骗。欺骗的一个例子是,有多少浏览器在用户代理中仍然有Mozilla,即使Netscape已经不存在了。至少在某种程度上是这样。这是我的MacBookPro上的Chrome:Mozilla/5.0 Macintosh;英特尔Mac OS X 10_9_5 AppleWebKit/537.36 KHTML,如Gecko Chrome/41.0.2272.89 Safari/537.36。我不明白为什么会有Mozilla或KHTML,比如用户代理字符串中的Gecko。Chrome不是Netscape,也不在Gecko上运行。@MJWilliams,因为Chrome使用了webkit,现在是webkit的分支,叫做Blink,但webkit最初是在基于。。。壁虎。