文章已归档公众号:妙蛙种子前端​

原文地址:Chrome 和 Firefox 版本100对User-Agent的缓冲处理 | 妙蛙种子 - 记录WEB前端技术学习成长过程的博客


ChromeFirefox 将在最近的几个月内更新到100版本,版本预计的发布时间:

  • Chrome:2022 年 3 月 29 日
  • Firefox:2022 年 5 月 3 日

100 版本是ChromeFirefox 的里程碑,也是从两位数版本号升级为三位数版本号的时间点。这次版本号的升级,可能会导致部分网站识别User-Agent中浏览器版本号逻辑导致网站功能异常。

为什么100版本号可能会影响User-Agent?

我们在开发应用的时候经常需要通过User-Agent获取客户端的环境,可以通过自己编写正则、字符匹配或者是用User-Agent解析库方式来获取User-Agent里的信息,然后处理对应的业务逻辑。

在2012年浏览器版本号首次达到10时,版本号从一位数变成了两位数,导致许多User-Agent库、网站出现了许多问题。

在没有统一规范的情况下,不同的浏览器对 User-Agent 字符串格式可能略有区别。一些 User-Agent 库可能有硬编码或者写死两位版本号的规则,没有考虑到版本号升级至三位会带来的异常。

但有了12年升级至两位版本号时的经验,许多工具库改善了解析逻辑,可预见的是当版本号至100时的问题会少很多。 Chrome团队的工程师 Mike Taylor 对常见的 UA 解析库进行了调查,暂时没有发现任何问题。但也不能排除部分应用没有使用UA解析库或者不常用的UA解析库,所以Chrome  和 Firefox 对升级至100版本的态度还是比较谨慎的。

Chrome  和 Firefox 在发布100版本前进行各方面的测试,并且记录了许多可能是100版本导致的错误。其中针对100版本对User-Agent解析错误的问题,Chrome  和 Firefox 都有各自的缓冲处理方案。

Chrome的缓冲处理方案

Chrome的缓冲方案是将主版本号冻结在99,并将真正的版本号放到次要版本号中。如:99.101.4988.0

当然 Chrome 还在进行测试,以确保在 User-Agent 的次要版本号升级至三位数的值不会导致别的问题,Chrome 团队将追踪发现问题的数量和严重程度决定是否使用采用这种缓冲方案。

Firefox的缓冲处理方案

Firefox中有一个站点干预机制,会在这个机制中尝试热修复异常的网站。如果您about:compat在 Firefox URL 栏中输入内容,您可以看到当前正在修复的内容。

如果某个站点在其他版本中显示正常,唯独在 100 版本时无法正常显示,Firefox则会使用 99 版本来打开这个站点。如果发现影响很广或者个别站点的干预变得难以管理,Mozilla 可以将 Firefox 的主要版本暂时冻结为 99。

交个朋友, 关注 “妙蛙种子前端” 公众号吧

Chrome 和 Firefox 版本100对User-Agent的缓冲处理相关推荐

  1. asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整...

    asdm不能登录问题:浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整 转载于:https://www.cnblogs.com/taosim/p/3 ...

  2. 在Chrome、Firefox等高版本浏览器中实现低延迟播放海康、大华RTSP

    一.背景 现在到处是摄像头的时代,随着带宽的不断提速和智能手机的普及催生出火热的网络直播行业,新冠病毒的大流行又使网络视频会议系统成为商务会议的必然选择,因此RTSP实时视频流播放及处理不再局限于安防 ...

  3. input file本地图片预览的方法(兼容IE、Chrome和Firefox)

    JS兼容各个浏览器的本地图片上传即时预览效果 2014-02-26      我来说两句       收藏     我要投稿 很早以前 在杭州银行工作曾经碰到这么一个需求,当时也是纠结了很久,也是go ...

  4. 谷歌浏览器Chrome与ChromeDriver版本不一致问题全解

    在学习使用selenium模块爬取动态渲染信息时,selenium模块需要通过浏览器驱动来控制浏览器的操作. 我们安装教程安装浏览器(一般使用谷歌浏览器Chrome),下载浏览器驱动(谷歌浏览器驱动C ...

  5. 爬虫:Chrome、Firefox 、IE、Selenium浏览器驱动下载安装

    Chrome webdriver下载 Chrome Webdriver 下载地址:https://chromedriver.storage.googleapis.com/index.html     ...

  6. Flash Player小程序(内嵌窗口)在Chrome、Firefox、Edge、360极速/安全、IE 8、Oprea 36、QQ、搜狗等浏览器上的应用

    Flash Player小程序(内嵌窗口):基于跨浏览器的小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )开发,底 ...

  7. JavaScript 兼容新旧版chrome和firefox的桌面通知

    1.新/旧版本的chrome和firefox都可支持,IE下不支持因此设置为了在最小化窗口处闪烁显示提示文字. 2.设置为提示窗口显示5秒即关闭. 3.可设置图标和点击提示窗口要跳转到的页面(见输入参 ...

  8. 【转】禁用Chrome和Firefox中自动播放的动画GIF

    动画GIF已经腐臭,并且在浏览时自动播放时可能会非常烦人.以下是如何阻止他们在Chrome和Firefox中自动播放. 禁用动画GIF Firefox 在地址栏中输入:  about:config,然 ...

  9. 苹果safari关掉java_如何在Safari,Chrome,Firefox和系统范围内禁用Java | MOS86

    如果您厌倦了所有Java安全更新和潜在的漏洞,您可以通过禁用Java来完全避免潜在的问题. 对于普通用户,我们建议将Java禁用作为保护Mac免受潜在恶意软件,病毒和木马的主要手段之一.事实上,最新版 ...

最新文章

  1. HDU2544 最短路(模版题dijkstra/floyd/spfa)
  2. Spring-AOP 自动创建代理
  3. Verilog HDL语言设计4个独立的非门
  4. MonoBehaviour常用方法
  5. linux由众多微内核组成,什么是linux
  6. 编译JDK源代码【转】
  7. php core模块,module.php
  8. 纯手工搭建k8s集群-(二)核心模块部署
  9. malloc_free_new_delete
  10. 淘宝分类大全及其分组 (MySql, xls)文件,上下关系,拼写,层级,层级树,提示,2022年2月28日数据
  11. 剑指offer-刷题总结
  12. 人工智能技术与现代应用
  13. 入侵服务器修改手游,如何入侵手游服务器数据库
  14. GAMES104实录 | 游戏引擎导论(上)
  15. spring boot 集成 websocket 实现消息主动推送
  16. 3个月免费云服务器,10+行业解决方案,阿里再推企业上云浪潮
  17. 如何做好基层管理者(一)
  18. OpenGL中glRotatef()函数究竟对矩阵做了什么
  19. building workspace js validation
  20. 最简单的基于FFMPEG+SDL的音频播放器

热门文章

  1. 游戏大全(持续更新中……)
  2. java-php-python-ssm政府机关门禁管理系统计算机毕业设计
  3. Android Facebook游戏邀请功能
  4. 美国警察冲进中国驻休斯敦领馆 铐走我副总领事
  5. 〖Python自动化办公篇⑯〗 - PPT 文件自动化 - PPT 段落的使用
  6. Python基础知识学习(六)——包与模块:指令、包加载步骤、搜索范围
  7. 在微信小程序里引入Vant Weapp组件库详细步骤
  8. OpenCV颜色识别
  9. 【Demo3d】Visual类对象操作常用方法
  10. ios拉伸图片某部分,九点图