全国协议5人面授小班,企业级独立开发考核,转业者的IT软件工程师基地 登录/注册 | 如何报名

免费领取试听课程

并获得专业顾问一对一进行选课辅导

课程名称不能为空
姓名不能为空
手机号码不能为空

领取成功

浏览器日积月累版本数过多,“千年虫”时隔多年又要钻出来了?

行业新闻 汉码未来 | 浏览器 千年虫 更新

2022-02-22 09:49:56

我不知道有多少人还记得,2000年,计算机领域出现了著名的千年虫问题。 千年虫不是病毒,也不是神奇的生物,它只是计算机系统由于时间障碍:为了节省昂贵的存储空间,上个世纪的计算机系统人员通常只使用后两位数,所以直到2000年,计算机无法识别00是1900年还是2000年,导致广泛的系统功能障碍甚至崩溃。

浏览器日积月累版本数过多,“千年虫”时隔多年又要钻出来了?

1、版本号首次突破个位数,网站:你的浏览器版本太低了

浏览器版本中的千年虫不是时间问题,而是版本号位数的突破。因此,当这个问题最初发生时,是浏览器版本号从个位数升级到10的时候了。

2009年,opera浏览器首次更新到版本10。在用户高兴地升级到最新版本后,他们在访问网站时被提醒:你的浏览器版本太低了,请升级……当时,许多用户的第一反应是:什么?opera11已经存在了吗?搜索,不!去看看其他网站。。嗯,你可以访问,但为什么有些功能突然不支持,网站布局有些错位?

在许多用户向opera投诉后,opera正式解释说,这与user-agent字符串有关,opera10是第一个突破十位数的版本号。

User-agent是Http协议的一部分,属于头部领域的一部分,包括相关软件的信息,如浏览器名称、版本号及其使用的各种技术。当有人访问网站时,浏览器的user-agent将与网页请求一起发送,以便于网站检查访问者的浏览器版本并提供不同的响应。

根据之前浏览器版本的逻辑,我们在发布opera10alpha版本时,给了它一个user-agent字符串:opera/10.00(macintosh;intelmacosx;U.en)presto/2.2.0。但很快我们发现,很多部署浏览器嗅探功能的网站,为特定版本提供不同的内容和脚本。

二、将Opera10认定为Opera1。

在此期间,浏览器还没有长期发展,大多数浏览器的版本号一直保持在个位数以内,而opera10是第一个版本号达到两位数的浏览器。因此,相当多的浏览器嗅探脚本似乎没有准备好改变,仍然习惯于只检测user-agent字符串的第一个数字——也就是说,这些网站会错误地将opera10识别为opera1,从而将opera10识别为不支持的浏览器,从而破坏服务器和客户端脚本。

Opera官方承认Opera10在一些网站上有bug:在一些网站上,Flash视频的位置是预期高度的一半,因为Height参数依赖的浏览器嗅探脚本将Opera10识别为Opera101,导致该值不正确,布局混乱。

这个问题与当年的千年虫问题非常相似。因此,经过几个月对网站兼容性的仔细分析,Opera决定冻结字符串的第一部分Opera/9.80,并在最后添加版本号Version/10.00或Version/11.00,以确保提供真实版本号,避免两位数版本号造成的相关问题。作为参考,Mac平台下默认英语的Opera10useragent如下:

Opera/9.80(Macintosh;IntelMacOSX;U.en)Presto/2.2.15Version/10.00。

1

在2009年Opera官方对此事的回应中,预测:其他浏览器也要注意这个问题,比如IE距离版本10只有两个版本(当时IE浏览器更新到IE8),未来可能会出现类似的问题。

如Opera所料,三年后,Firefox10也遇到了同样的问题:

三、梅开二度:Chrome,Firefox版即将破百。

近十年来,两位数版本号的问题得到了完美的解决,但与此同时,主要浏览器也在快速发展。现在,今年2月,谷歌推出了chrome98,然后mozila也发布了firefox97。两个版本号即将突破100。历史会再次重演吗?

谷歌最近的Mozilla,谷歌消息显示:是的,但可能不会太严重。

自去年8月以来,Mozilla一直在测试三位数版本号的firefox/100User-agent字符串,查看是否会导致网站出现问题,然后谷歌开始了其chrome100的实验。

结果他们在测试中发现,确实有少数网站在分析浏览器三位数版本号的user-agent字符串时犯了错误,导致了网站声明不支持浏览器、影响部分网站用户界面等问题。这些网站包括由duda网站构建器创建的HBOGo、Bethesda、Yahoo、Slack和网站。

Mozilla解释说:不同的浏览器对User-agent字符串和特定网站的User-agent分析有不同的格式,没有单一的规范可遵循。有些分析库可能存在硬编码错误,没有考虑三个主要版本号。

与此同时,Mozilla还补充说,这一次的影响范围不会太严重:当浏览器升级到两位数版本时,许多图书馆已经改进了分析逻辑,因此预计三位数导致的问题将更少。

4、网站开发者/管理员应自行检测。

据国外媒体Theregister报道,谷歌计划于今年4月初发布Chrome100,Firefox100预计将于5月发布。在此之前,Mozila和谷歌将改进已发现的问题。如果届时尚未完全修复,两家公司也已准备好应对措施:冻结User-Agent中的Firefox/99或Chrome/99部分。


以上就是汉码未来给大家分享的文章,希望对小伙伴们有所帮助,想要了解更多浏览器日积月累版本数过多,“千年虫”时隔多年又要钻出来了?相关内容的小伙伴可以登录汉码未来官网咨询,主打5人小班,全程面授,主打Java开发,web前端开发等课程,有专业的授课老师为你答疑解惑。

    

分享到:



【免责声明】由于政策等各方面情况的不断调整与变化,本网站所提供的信息仅供参考,请以权威部门公布的正式信息为准。本网站在文章内容来源出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如您对内容、版权等问题存在异议请与本站联系,我们会及时进行处理解决。 删除,请联系客服。
为什么选择汉码未来