近日,谷歌的工程师们发现,当Chrome的版本号达到100时,网页会有一定概率打不开,而且这个问题可能会影响20多亿用户。

Chrome浏览器要翻车了?

随着版本号即将达到100,谷歌浏览器遇到了一些意想不到的问题。

而这可能会影响高达20多亿的用户。

当然了,紧随其后的Firefox和Edge也不能幸免。

满100减90

这个问题吧,倒不是说浏览器会闪退,只不过是失去了它原本的作用:访问网站罢了。

当你使用Chrome 100时,网站一看,你这是个什么「老古董」?

对不起,不支持,我拒绝。

对此谷歌表示,这一问题主要出现在与Duda合作开发的网站中,并已着手开始修复。

原因其实很简单:版本号。

大多数网站都会检查用户代理字符串来确定用户的浏览器版本。

在Chrome浏览器中,以当前公共版本为例,这个用字符串表示的版本号的内容是:Chrome/96.0.4664.110。

正常情况下,开发者不需要知道浏览器的具体版本。因此,Duda在默认情况下只会读取「Chrome/」后面的两个字符。

比如,在「Chrome/96.0.4664.110」的例子中,Duda将只读取「96」。

而 「Chrome Canary」已经到了「99.0.4791.0」,那么Duda就只读取「99」。

这种读取方法是出于安全考虑,以阻止旧的、已经不予支持的Chrome浏览器访问(40及以上是一个常见的Chrome浏览器版本分界点)。

这样的设计虽然简洁,但如此一来,Chrome 100只能被识别为Chrome 10。

而最坑的是,Duda出于兼容性的考虑,会阻止版本低于40的Chrome浏览器打开网站,这样就会导致Chrome 100无法正常访问网站。

为了避免这种尴尬的情况,网络开发者必须在Chrome 100推出之前找到一种方法,正确解析三位数的版本号。

不过,要寻找一个能够彻底修复这一漏洞的方法是很棘手的,而且时间已经不多了。

因为谷歌公司开发Chrome浏览器的速度极为惊人,Chrome浏览器的版本号也在不断增加。

根据目前的发布速度,Canary用户可能最快会在下个月就会遇到这个bug,而运行稳定版的数十亿用户也只剩3至6个月的时间了。

这也就意味着,Chrome浏览器的用户需要为网络中断做好准备,或者在问题解决之前先用其他浏览器。

99.100先凑合用

其实,在11月1日的时候,谷歌就发现这个潜在的问题了。

对此,谷歌为Chrome提供了一个测试flag,从而可以强制浏览器的版本号显示为100,以便于网站排查问题并为变化做好准备。

只需在地址栏中输入chrome://flags并启用#force-major-version-to-100就可以了。
不得不说,工程师的脑洞还真挺大。

如果实在是不行的话,也不是没有办法!

他们想出了一个能凑合用的方法:让Chrome浏览器版本的前两个数字锁定为99,然后将实际版本号放在第二组数字中。

对于几乎没有机会更新的老网站来说,这招应该会非常有效。

这样,用户代理字符串中表达版本号的内容将以「Chrome/99.100.XX」的形式呈现,从而解决了Duda的识别问题。

此外,谷歌也在寻找有识别问题的网站,并试图与开发者取得联系,从而通过修改代码来解决问题。
当然,这听起来肯定不是最优雅的解决方案。

谷歌方面也把这个解决方案认定为一个「备份计划」。

毕竟这个「备份计划」并不能覆盖所有情况,因为Duda可能并不是唯一出现问题的网络工具包。

目前,谷歌希望能够明确地找到全网所有在Chrome 100发布时出现故障的网站,并就这个问题与它们的开发者联系。
如果这些问题能在3月底Chrome 100发布前得到解决,那么对网络开发者来说就根本不需要改变什么。

否则,Chrome就只能在用户代理字符串中增加新的内容。

谷歌的金丝雀

Chrome有四个「发布渠道」:稳定版,测试版,开发版和金丝雀版。

从为普通用户提供最稳定的版本的稳定版,到提供尖端功能和修复但更不稳定的金丝雀。
煤矿工人过去下矿井时,他们带着一只金丝雀作为早期预警系统。如果金丝雀活下来,空气就可以安全呼吸。如果不安全,则是时候离开了。
技术圈的Canary正式来自「矿井里的金丝雀」这个谚语,指的是软件的alpha测试版本,谷歌浏览器也不例外。

Chrome Canary中的一些修复和新功能在成为主要稳定版的一部分之前,将在开发和测试版进行全面测试。

除了缺乏测试,并且可能没有修复所有错误之外,Canary仅仅是Chrome FROM THE FUTURE。

异曲同工的「千年虫」

Y2K是2000年软件bug的通用缩写。

该缩写中的字母Y代表「年」,数字2和大写的k代表kilo,意思是1000,因此,2K表示2000年。

Y2K也被命名为「千年虫」,因为它与千禧年的时间戳有关。
在上个世纪,无论是大型计算机还是个人计算机,「存储信息」这一行为是非常昂贵的,少说也要每千字节10美元,在许多情况下甚至超过超过每千字节100美元。

因此,对于程序员来说,最大限度地减少存储信息是非常重要的,能省1bit是1bit 。

所以,那时候的数据文件的日期格式是六位数字,形式为DDMMYY,日为两位数,月为两位数,年为两位数的YY。比如,1970年1月1日,就是700101。

甚至,还有一种更短的表示方法「YYDDD」,其中DDD是一年中的天数。由于磁盘和磁带上的空间也很昂贵,因此通过减少存储日期的数据文件大小也节省了资金。

可是,有些程序在面对两位数年份时,无法区分2000年和1900年。这便是「千年虫」的由来。
不过,有一个地区是例外。

1999年年底,在全世界程序员在为千年虫问题焦虑的的时候,日本程序员却灵机一动:如果继续沿用昭和(1926年开始)年号的话,千年虫会足足延后到2025年。

25年的时间总该可以解决这次的问题了。当然,如果真的打算解决的话……

然而日本在2019年改元为令和时,不但要更改年号,而且昭和时代年号计算的「新千年虫」(昭和100年)马上就要来临。

而且不幸的是,不少系统的源代码经过30至40年都已经丢失了。

更加不巧的是,据说在日本IT界还有一个叫「2007年问题」的问题。

也就是说,当年建立电脑系统的工程师,大部分都会集中在2007年退休。到现在,已经基本上没有多少人知道如何维护旧的系统了。

Chrome浏览器全球大翻车? 让20多亿用户无网可上相关推荐

  1. Chrome 浏览器全球大翻车?「满 100 减 90」 让 20 多亿用户无网可上!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 近日,谷歌的工程师们发现,当Chrome的版本号达到100时,网页会有一定概率打不开,而且这个问题可能会影响20多 ...

  2. Chrome 浏览器全球大翻车?让 20 多亿用户无网可上

  3. 用chrome浏览器看大华录像机

    https://chrome.google.com/webstore/detail/web-service/ffjjahemdccfmcogfkomagkeobngeicc/related 使用chr ...

  4. 记录:记录以便日后翻阅,web端chrome浏览器对大华视频监控和录像回放的方式

    一.视频监控的方式 1.大华摄像头在乐橙开放平台绑定设备,获取到rtsp流地址 2.通过各种player进行播放达到监控的需求(会有播放延迟) 二.视频录像回放 Ⅰ.方案①:chrome打开ie通过i ...

  5. 谷歌或被迫拆分Chrome浏览器,谁将会接盘?

    美国司法部和州总检察长办公室的检察官们准备起诉谷歌,正在讨论设法遏制这家搜索巨头的市场力量. Google 可能要被迫分拆 Chrome 浏览器了. 近日,美国政治新闻网站 Politico 援引三名 ...

  6. 号外:谷歌Chrome浏览器傲视群雄,Windows正在逐渐衰落

    导读 最近国外的网络分析公司Net Applications对全球的各种浏览器和操作系统进行统计,并发布了相关调研结果,结果表示:谷歌第一,微软第二. 截止2020年4月,全球各大Internet浏览 ...

  7. a标签隐藏真实地址_用好这些隐藏「小开关」,让 Chrome 浏览器更好用

    相比移动端的 Chrome 浏览器,功能性能更强更全面的桌面端 Chrome 可能是你我每天使用频次最多的桌面软件.多端数据同步.实用的扩展插件都让其成为电脑上的「超级应用」.近乎无限制的桌面平台也让 ...

  8. chrome浏览器使用技巧

    在学校的时候一直在用firefox火狐浏览器,听一个学长说使用chrome浏览器在面试的时候有加分,而且还跟我说了一些chrome浏览器的使用技巧,最后从火狐浏览器转到谷歌浏览器,就一直在使用谷歌浏览 ...

  9. chrome浏览器如何重新打开关闭的标签页?(快捷键ctrl+shift+t)

    像360浏览器是在这恢复的(右击标签) chrome浏览器又是在哪呢? 它就不是在标签上右击了,是在标签栏旁边的空白处右击 快捷键是ctrl+shift+t,这个跟360浏览器是一样的 参考文章:ch ...

最新文章

  1. 包继承Maven的超级POM
  2. moia调度mysql到hive_创立打车软件Moia后,“不安分”的大众又收购一家移动支付公司PayByPhone...
  3. 如何查找SAP Fiori UI上某个字段对应的底层数据库表
  4. 【软件领域知识整理】贵金属交易的名词解释(一)
  5. linux禁止开机启动服务器,如何关闭SELinux并设置开机不启动
  6. MFC开发IM-第二十八篇、acl 的编译与使用
  7. [function.strtotime] 错误对策
  8. GitHub无法push的问题
  9. .NET Framework 4.7.2离线安装程序
  10. 周公解梦|做梦的解释|鬼压床|为什么会做梦
  11. Idea打包jar 及jar包反编译为代码的多种方法
  12. 微信小程序——服务器接口
  13. [宋史学习] 赵光义篡改历史
  14. 田忌赛马java代码算法,AcWing 1489. 田忌赛马——Java版代码
  15. web前端大作业 (仿英雄联盟网站制作html css javascript) 学生dreamweaver网页设计作业
  16. 【图像识别与处理】构建用于垃圾分类的图像分类器
  17. M3D GIS三维数字沙盘可视化交互地理信息系统开发教程第44课
  18. MySql字段内容加密与解密
  19. Vue3+TS 中使用Provide/Inject 的例子
  20. Vivado驱动安装

热门文章

  1. php artisan 计划任务,Laravel artisan命令及任务调度
  2. 汉诺塔问题的时间复杂度
  3. Scrum:产品负责人责任
  4. 支付宝 android 指纹支付,支付宝更新,小米5终于用上了指纹支付
  5. 台式电脑 计算机管理在哪里,设备管理器在哪 怎么打开设备管理器?
  6. Google的几个特别搜索功能(转)
  7. 【Python中字典的len()方法】
  8. 基于mycncart开发PHP在线定制商城网站源码
  9. 七年老安卓的九十月小结
  10. SkyWalking调研与初步实践