Chrome浏览器要翻车了?随着版本号接近100,谷歌浏览器遇到了一些意想不到的问题。这可能会影响多达20亿以上的用户。当然,Firefox和紧随其后的Edge也未能幸免。100减90的问题不是浏览器会崩溃,只是失去了原有的功能:访问网站。当你用Chrome100的时候,网站一看,你是什么“老古董”?对不起,不支持,我拒绝。对此,谷歌表示,这个问题主要出现在与杜达合作开发的网站上,目前已经着手修复。原因其实很简单:版本号。大多数网站检查用户代理字符串以确定用户的浏览器版本。在Chrome浏览器中,以当前公开版本为例,字符串表示的版本号内容为:Chrome/96.0.4664.110。一般情况下,开发者不需要知道浏览器的具体版本。因此,Duda默认只会读取“Chrome/”之后的两个字符。例如,在“Chrome/96.0.4664.110”的情况下,Duda只会读取“96”。而“ChromeCanary”已经达到了“99.0.4791.0”,所以Duda只读了“99”。这种阅读方式是出于安全原因,以防止旧的、不支持的Chrome浏览器访问(40及以上是常见的Chrome浏览器版本分界点)。这样的设计虽然简单,但是这样一来,Chrome100就只能被识别为Chrome10了。最糟糕的是,为了兼容性,Duda会阻止低于40版本的Chrome浏览器打开网站,这将导致Chrome100无法正常访问网站。为了避免这种尴尬的情况,Web开发人员必须在Chrome100推出之前找到一种正确解析三位数版本号的方法。不过,为该错误找到一个干净的修复程序很棘手,而且时间不多了。由于谷歌开发Chrome浏览器的速度惊人,Chrome浏览器的版本号也在不断增加。根据目前的发布速度,Canary用户最快下个月就会遇到这个漏洞,而运行稳定版的数十亿用户只剩下三到六个月的时间。这也意味着Chrome浏览器的用户需要做好网络中断的准备,或者在问题解决之前使用其他浏览器。99.100先凑合吧其实在11月1日,谷歌就发现了这个潜在的问题。对此,Google为Chrome提供了一个测试标志,可以强制浏览器的版本号显示为100,以便网站排查问题并为更改做好准备。只需在地址栏中输入chrome://flags并启用#force-major-version-to-100。不得不说工程师的脑洞真大。做不到就没有办法!他们想出了一个解决方法:将Chrome版本的前两个数字锁定在99,并将实际版本号放在第二组数字中。这个技巧对于很少有机会更新的旧站点应该非常有效。这样,useragent字符串中表示版本号的内容就会以“Chrome/99.100.XX”的形式呈现,从而解决了嘟嘟的识别问题。此外,谷歌也在寻找存在识别问题的网站,并试图与开发者取得联系,通过修改代码来解决问题。当然,这听起来肯定不是最优雅的解决方案。谷歌还将这个解决方案确定为“备份计划”。毕竟,这个“备份计划”并不能涵盖所有情况,因为Duda可能不是唯一出现问题的网络工具包。目前,谷歌希望能够在Chrome100发布时明确找到网络上所有已关闭的网站,并就此问题联系其开发人员。如果这些问题在3月底Chrome100发布时得到解决,那么对于Web开发人员来说根本不需要改变。否则,Chrome只能向用户代理字符串添加新内容。Google的CanaryChrome有四个“发布渠道”:Stable、Beta、Dev和Canary。从为普通用户提供最稳定版本的Stable,到提供尖端功能和修复但更不稳定的Canary。过去,煤矿工人下矿时,都会随身携带一只金丝雀作为预警系统。如果金丝雀幸存下来,空气就可以安全呼吸了。如果不安全,是时候离开了。技术圈中的金丝雀正式来源于谚语“矿井里的金丝雀”,指的是软件的alpha测试版,谷歌浏览器也不例外。在成为主要稳定版本的一部分之前,ChromeCanary中的一些修复和新功能将在开发和测试版中进行全面测试。除了缺乏测试,并且可能没有修复所有错误之外,Canary简直就是来自未来的Chrome。Y2K是2000年软件错误的总称。此缩写中的字母Y代表“年”,数字2和大写的k代表kilo,表示1000,因此2K表示2000年。Y2K也因与千年的时间戳有关而被命名为“Y2K”。在上个世纪,无论是大型计算机还是个人计算机,“存储信息”的行为都非常昂贵,至少每千字节10美元,很多情况下甚至超过100美元每千字节。所以对于程序员来说,尽量减少存储信息是非常重要的,1bit可以存1bit。所以当时的数据文件的日期格式是DDMMYY形式的六位数字,两位数为日,两位数为月,两位数为年YY。例如,1970年1月1日是700101。甚至,还有更短的表示法“YYDDD”,其中DDD是一年中的天数。由于磁盘和磁带上的空间也很昂贵,因此还可以通过减小存储日期的数据文件的大小来节省资金。但是,有些程序在面对两位数的年份时无法区分2000年和1900年。这就是“千年虫”的由来。但是,有一个领域是例外。1999年底,当全世界的程序员都在为Y2K问题焦急的时候,日本的程序员灵机一动:如果继续沿用昭和时代(从1926年开始),Y2K将完全推迟到2025年。25年应该足以解决这个问题。当然,如果真打算解决的话……不过,2019年日本改元为令和的时候,不仅要改年号,“新千年虫”(昭和100)也快来了.不幸的是,许多系统的源代码在30到40年后就丢失了。更不幸的是,据说在日本IT界还有一个叫做“2007问题”的问题。也就是说,当年搭建电脑系统的工程师大部分都会在2007年退休,到现在,懂得维护旧系统的人基本不多。
