用了几十年的浏览器 user-agent 要退出历史舞台了?看看 Google 怎么说

时间: 2020-01-19阅读: 469标签: 浏览器

Google 近日宣布,计划在 Chrome 浏览器上逐步淘汰 user-agent 字符串。

这里稍微解释下,user-agent (UA,用户代理) 字符串是现代 web 和浏览器功能的重要组成部分。

UA 字符串是浏览器建立连接时向网站发送的一段文本。UA 字符串包含了浏览器类型、渲染引擎和操作系统等详细信息。例如,Windows 10 上的 Firefox 浏览器 UA 是这样的:

*Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/72.0*

UA 在90年代作为 Netscape 浏览器的一部分被开发出来,一直沿用至今。几十年来,各种网站都在利用 UA 字符串,根据访客的客户端情况调整功能特性。

但是现在,谷歌表示这个曾经有用的机制已经成为各种问题的持续来源。

首先,UA字符串已经被在线广告商用来跟踪和识别网站访客。

“这些隐私问题中最严重的是,用户代理嗅探是兼容性问题的多数来源,尤其是小众浏览器,会统一或针对特定网站谎报UA,一些网站(包括谷歌的网站)在某些浏览器上毫无理由的崩溃。”为 Chrome 浏览器工作的谷歌工程师 Yoav Weiss 说到。

为了解决这些问题,谷歌计划通过冻结整个标准来逐步消除 UA 字符串在 Chrome 中的重要性。


计划

Google 的计划是停止更新 Chrome 的 UA 字符串内容。

长期的计划是将所有的 Chrome UA 字符串统一为通用值,这样就不会泄露太多用户信息。

这意味着在新的平台上发布的新 Chrome 浏览器,比如在新的智能手机型号或新的操作系统版本上,将使用通用的 UA 字符串,而不是为特定平台定制的。

例如,在未来,一个网站将无法区分使用 Chrome 的访客是在 Windows 7 还是 Windows 11上运行 Chrome,或者 Chrome 移动用户是在使用三星 Galaxy 手机还是 Pixel 9 手机。

网站只能够识别用户是否在运行 Chrome,以及他们是否在桌面或移动设备上,但仅此而已。

为了历史遗留目的,现有的 Chrome UA 字符串将继续工作,所以它们不会破坏运行在整个web上现有的技术和脚本。

下面是谷歌目前弃用 UA 字符串的计划:

  • Chrome 81 (2020 3月中旬) - 谷歌计划在 Chrome 控制台中为读取 UA 字符串的网页显示警告,这样开发者可以调整网站代码。
  • Chrome 83 (2020 6月初) - 谷歌将在 UA 字符串中固定 Chrome 浏览器版本并统一操作系统版本
  • Chrome 85 (2020 9月中旬) - 谷歌将统一桌面操作系统 UA 字符串作为桌面浏览器的通用值。谷歌还将统一移动操作系统/设备字符串作为一个类似的通用值。

再见,UA字符串!你好,CLIENT HINTS!

对 UA 字符串机制的弃用是谷歌改善网络隐私的努力的一部分,但不会扼杀网络广告,而广告是当今大多数免费网站的命脉。

Chrome 中的 UA 字符串将被一个名为Client hint 的新机制取代。通过这种机制,网站可以请求关于用户的信息,但没有“历史包袱和古老的User-Agent 标头暴露的被动指纹信息”,官方标准是这样写的。

Client Hints 已经被开发为谷歌的Privacy Sandbox项目的一部分,该项目于去年8月份宣布。

Privacy Sandbox 技术栈旨在为网站和广告商提供一种方式,使他们能够在浏览器中查询用户详细信息,同时又不会暴露太多用户信息。

通过 Privacy Sandbox,浏览器将分享足够的用户信息,这样广告商就可以将用户分组了,而不是创建详细的个人资料。

弃用 UA 字符串改用 Client Hints 是谷歌实现 Chrome Privacy Sandbox 的第一步,这也是谷歌去年夏天承诺的。

苹果(Safari)、微软(Edge)和 Mozilla (Firefox)也表示支持谷歌冻结和逐步取消用户代理字符串的提议,但在撰写本文时尚未宣布具体计划。

来源: zdnet.com
翻译整理:1024译站 

 

站长推荐

1.阿里云: 本站目前使用的是阿里云主机,安全/可靠/稳定。点击领取2000元代金券、了解最新阿里云产品的各种优惠活动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各类产品的最新活动,优惠券领取点击进入

3.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/7315

html5的pushstate以及监听浏览器返回事件

实际开发我们在A页面调用组件,在组件里面填好内容之后,发现想退出不想填了,因为组件与A页面此时在同一页面,点击返回时候 给人感觉是返回上上个页面,但之前A页面填写的东西 都没有了,这很影响体验。

主流浏览器对ES6的支持情况

现在使用的js语法,基本是ES5的规范 ,15年出的ES6的规范增加了很多其他语法,要看浏览器的支持情况,如果浏览器不支持那么就会报错,ES6 块级作用域 关键字let, 常量const,对象字面量的属性赋值简写,赋值解构,函数参数

用JavaScript让你的浏览器说话

最近在开发一个个人项目时,我冒出了一个尝试让浏览器说话的想法。不知道该怎么做,于是,我在网上寻找了一下答案,在MDN上,我找到了答案。让我们来看看如何通过JavaScript让浏览器说话。

javascript判断浏览器类型与版本

除了另无它法,肯定不使用navigator.userAgent来判定浏览器。因为在第一次浏览器大战初期,Netscape占绝对统计地位,大部分人们不愿意兼容其他浏览器,并通过检测其UA让他们的网站只允许Netscape访问

浏览器中实现JavaScript计时器的4种创新方式

由于 Web Worker 本质上是Web线程,因此你可以在其中无限循环而不阻塞主线程。这使你可以访问微秒级的时间分辨率。这对于在 Worker 中做出时间关键的决策是特别实用的,可以让主线程准确的知道什么时候合适

浏览器执行js原理

是不是大都数前端开发者都会有这样的疑惑,确实,我自己在开发的过程中每次碰到promise,setTimeout,requestAnimationFrame都会去想,在这个执行的过程中到底发生了什么?

浏览器的Event Loop

进程和线程都是CPU工作时间片的一个描述。进程描述了CPU在运行指令及加载和保存上下文所需的时间,放在应用上来说就代表了一个程序。

js禁止浏览器保存用户密码

在HTML中,除了要用的密码框以外,额外添加一个密码框,设置为隐藏,注意:添加的用来干扰的密码框,必须在有用的密码框的上面,上面任何地方都行,就是不要在下面。

JavaScript判断浏览器内核,微信打开自动提示在浏览器打开

微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器。网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下。我们今天只讨论通过 JavaScript 判断是否在微信浏览器中打开,如果是则弹出提示,在浏览器中打开

浏览器是多进程还是单进程?

浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广