随着 Chrome 和 Firefox 浏览器接近第 100 个版本,开发人员应该庆祝的理由可能会变得有点混乱。事实证明,就像 Y2K 漏洞一样,浏览器的用户代理 (UA) 中编码的三位数版本号可能会导致少数网站出现问题。
Mozilla 去年启动了一项实验,看看版本号 100 是否会影响网站,它刚刚发布了一个包含结果的博客。它确实影响了少数无法解析包含三位数数字的用户代理字符串的站点(但也有一些非常大的站点)。据一家跟踪网站称,仍然受到影响的知名公司包括 HBO Go、Bethesda 和雅虎。这些错误包括“浏览器不支持”消息、站点渲染问题、解析失败、403 错误等。
怎么会发生这种傻事?Mozilla 在博客中解释说:“如果没有遵循单一规范,不同的浏览器对用户代理字符串和特定站点的用户代理解析有不同的格式。” “一些解析库可能有硬编码的假设或错误,没有考虑到三位主要版本号。”
幸运的是,这两种浏览器的开发人员都有一个计划。如果在版本发布之前存在无法解决的网站问题,两种浏览器都会将 UA 字符串中的版本号冻结为 99 或注入代码覆盖来解决问题。两者还要求开发人员使用 Firefox/Chrome 100 用户代理测试他们的网站。Chrome 和 Firefox 的浏览器将分别于 3 月 29 日和 5 月 3 日到货——希望能像 Y2K 一样,无事生非。