浏览器列表说明的远比看起来的少
统计仪表板总是显示一个整洁的访问程序列表,将流量分类为 Chrome、Firefox 或 Safari 等不同的部分。这种有序的展示往往掩盖了极其混乱且本质上具有误导性的技术现实。
此数据的基础完全依赖于称为 User-Agent 字符串的文本序列,访问软件在每次文件请求期间都会传输该字符串。虽然这些图表看起来很权威,但底层的识别机制在历史上一直受到操纵,并且越来越失去其细微的准确性。
为什么每个浏览器都自称 Mozilla
浏览器识别的不可靠性源于早期网络开发的时代。几十年前,网络服务器根据识别出的浏览器名称提供不同的 HTML 结构。
为了确保用户收到最先进的页面版本,竞争浏览器的开发人员开始通过故意将竞争对手的名称附加到自己的标识字符串中来声称兼容性。
现代浏览器可能同时宣称自己是 Mozilla、AppleWebkit、KHTML、Gecko 和 Safari。解析这种令人费解的历史拼贴画需要复杂的模式匹配,把本来应该是简单识别的过程变成了一种有根据的猜测。
多个名字,一个引擎
此外,现代网络生态系统绝大多数被单一的底层渲染架构所主导。
今天,包括 Edge、Opera、Vivaldi 和 Brave 在内的知名浏览器都是建立在开源的 Chromium 引擎之上的。虽然品牌名称不同,但实际的技术行为和渲染功能几乎相同。
对于努力确保广泛兼容性的网站管理员来说,在统计报告中区分这些基于 Chromium 的衍生产品所提供的实用价值微乎其微,因为在一个浏览器中正常运行的页面几乎肯定会在其他浏览器中同样运行。
正在变短的那串标识
近年来,对增强隐私的推动积极地破坏了 User-Agent 字符串剩余的可靠性。
认识到高度具体的版本号和系统架构有助于侵入式跟踪和数字指纹识别,主要的浏览器供应商现在系统地冻结或减少了传输的详细信息。通用的版本号越来越多地取代了确切的子版本,并且移动应用程序经常欺骗桌面身份。
因此,虽然关于移动端与桌面端使用情况的大趋势仍然很有价值,但对特定浏览器版本号应该持深刻的怀疑态度,而不是将其视为绝对的工程事实。