Do Not Track Me!

简介: 近几年,随着互联网的飞速发展,人们对个人隐私的关注度也越来越高。今天就让我通过「Do Not Track API」带你看看,我们日常使用率超高的浏览器,是如何做隐私保护的。

原文作者:UC 国际研发 罗浩

前言

近几年,随着互联网的飞速发展,人们对个人隐私的关注度也越来越高。今天就让我通过「Do Not Track API」带你看看,我们日常使用率超高的浏览器,是如何做隐私保护的。

Do Not Track API 顾名思义就是有一个接口,可以设置不对用户行为进行跟踪。我们或许第一反应是:是不是只要做了相关设置,什么 Cookie 之类的数据就不记录了呢?

不是的,Do Not Track API 不是浏览器的隐私模式,虽然也是和用户隐私有密切关系,但还是有明显区别的,且听我慢慢道来。

Do Not Track 的历史

说到 Do not track(简称 DNT),最早对其进行支持的是 IE9 浏览器,在 2010 年的时候,IE 居然占了先机,这有些出乎意料,然后 2011 年 Firefox 火狐浏览器支持,2012 年 Chrome 浏览器也加入支持。可见,在很早的时候,浏览器基本就已经支持了 Do not track 设置。

会不会很奇怪?这个 API 出现足足有 8 年多了,似乎就没见人提及过,估计 90% 的前端就不知道浏览器还有这个东西。为什么呢?我们继续看。

浏览器开启 “不追踪”

默认情况下,浏览器是不开启 Do not track,也就是没有禁止不跟踪,需要我们自己手动开启。例如在 Chrome 浏览器下,我们可以设置-高级,然后 “随浏览流量一起发送 ‘不跟踪’ 请求”,如下截图示意:

image.png

Chrome 发送“不跟踪”请求

点击开关按钮,我们会看到下面的提示(随着浏览器变化,提示文案可能会有调整):

image.png

Chrome 浏览器不跟踪的提示

文字版如下:

如果您启用了“不跟踪”,即意味着您的浏览流量中将会包含一个请求。所造成的任何影响均取决于网站是否回应该请求以及如何解读该请求。例如:某些网站在收到该请求后,可能会向您展示广告(这些广告并不是根据您访问过的其他网站展示的)。许多网站仍会出于一些目的收集并使用您的浏览数据,例如,为了提高安全性,为了提供相关内容、服务、广告和推荐内容,以及为了生成报告统计信息。

是不是看不懂说的是什么?我用中文再次翻译下就是:

如果你启用了 “不跟踪”,则向服务器发送的请求我们都会带一个 “Do Not Track” 的请求头,至于会对你浏览页面有什么影响,要看这个网站对这个请求怎么处理。有些网站比较重视用户的隐私,发的广告就是随机的,不会出现在淘宝查了一下丧葬用品,然后满屏棺材广告的情况(典型基于用户隐私投放的广告)。当然,有些网站还是会出于一些冠冕堂皇的理由收集你的浏览数据,什么理由呢,比方说为了提供更好服务,为了你账户更安全等。

如果我们说得再直白一点就是:

尊敬的用户啊,如果你启用了 “不跟踪”,我们浏览器呢,会仁至义尽,给网站服务器、客户端都发送用户不希望被跟踪的信息。至于你访问的这个网站是否尊重你的设置,我们就无能为力了!

至此,我们可以明白,为什么 8 年多了,Do Not Track 无人问津。因为这玩意是否有效果完全就靠互联网公司是否自觉!

考虑到在中国,那更是变本加厉,啥用户隐私啊,且先不说绝大多数网站的管理者,产品,甚至开发不知道浏览器有 “不跟踪”,就算知道有这么个东西,且用户也会去设置,大家也一定会选择无视。中国的互联网对隐私那真是一点都不上心,前有 “李彦宏称中国用户愿用隐私换便利”,后有 “美团点评会显示你的好友在哪儿里点过餐,住过什么酒店”,什么 “Do Not Track”,根本就是聋子的耳朵——摆设,在中国,有和没有有区别吗?没有用,不在意,自然就无人关心。

不过,从近些年诸多事件网民的言论来看,隐私这件事情已经越来越关注,一定会在哪天摆在台面上成为很重要的议题进行发酵的!因此,如果网站能在隐私这件事情上做得能让用户明显感觉到尊重,则这个网站的影响力,公司的口碑说不定会爆炸式增长。网上不是有句话吗?不是我厉害,同行衬托的好。

端开发可以做些什么

浏览器在前端提供了 Do Not Track API,可以让前端开发人员知道用户是否开启了 Do Not Track。

这个 HTML5 API 就是 navigator.doNotTrack,IE9 和 IE10 还需要私有前缀 navigator.msDoNotTrack,然后 IE11+ 不知出于什么考虑,使用 window.doNotTrack 代替了 navigator.doNotTrack。

除了 API 名称细节差异,对于 doNotTrack 属性的返回值也存在差异,具体参见下表:

image.png

也就是,所有浏览器如果用户开启了 “不追踪”,则 API 返回值是 '1';如果没有开启,则 IE9,IE10 返回 '0',IE11+ 和 Chrome 返回 null,Firefox 浏览器返回 'unspecified'。

因此,我们可以逻辑合并,这样获知用户是否这是了 “不跟踪”:

image.png

接下来就可以付诸实际应用了。
比方说,很多搜索会有历史搜索,如果用户选择了“隐私不跟踪”,则原来现实历史搜索列表的地方可以这么提示:
“由于您选择了隐私跟踪保护,您的搜索历史我们不会记录!”

例如新浪微博的搜索历史就会长下面这样:

image.png

隐私保护下的历史搜索

多好!一看就是尊重用户选择,注重隐私的好公司,好产品!
请尊重用户的选择,你自以为是的感受不能代表用户真正的心声。就好比小时候父母自以为是地为你好,很多时候很多的是负担!

结语

隐私本质上也是用户体验的一部分,作为前端这个与用户紧密打交道的群体,更应对其保持关注。用不用倒无所谓,但至少知道有这么个东西,至少有这方面关注的意识,那也很不错了。

目录
相关文章
|
自然语言处理 前端开发 JavaScript
最好用的 8 款 React Datepicker 时间日期选择器测评推荐
React 时间日期选择器(date-timepicker)组件,与表单、富文本、表格、拖拽等组件一样,是大家用 React 搭建项目时使用最频繁的组件之一。React DateTimePicker 除了基础选择日期时间外,还有非常多样的功能配合不同场景使用,比如 12/24小时,禁止选择某些日期,高亮某些日期,夜间模式,多语言,酒店订单的特别场景等。本文记录了我自己使用多年最好用的 8 款 React DateTimePicker 组件,每一款都经过我实际测试,推荐给大家。
2282 0
最好用的 8 款 React Datepicker 时间日期选择器测评推荐
|
数据采集 存储 分布式计算
如何在Python中处理大规模数据集,以避免内存溢出?
如何在Python中处理大规模数据集,以避免内存溢出?
683 1
|
4月前
|
人工智能 自然语言处理 算法
AI时代警示录:Geo优化中的“黑帽”陷阱与抵制不正当竞争的价值回归
本文探讨生成式引擎优化(Geo)中的“黑帽”乱象及其危害,揭示批量低质内容、虚假权威等数据污染行为对AI生态与企业品牌的破坏,并倡导回归E-E-A-T原则。通过于磊老师提出的“两大核心+四轮驱动”规范化路径,助力企业构建可信数字资产,实现可持续获客增长。
251 9
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
1133 109
|
人工智能 自然语言处理 语音技术
创新场景丨下一个iPhone 时刻,AI+AR 加速虚实融合世界的到来
仅仅以大模型通用能力帮助 AR 眼镜实现了多个场景下的交互还不够,关键在于大模型没有针对 AR 眼镜的需求做深度的定制和匹配。
|
人工智能 自然语言处理 Java
Spring 集成 DeepSeek 的 3大方法(史上最全)
DeepSeek 的 API 接口和 OpenAI 是兼容的。我们可以自定义 http client,按照 OpenAI 的rest 接口格式,去访问 DeepSeek。自定义 Client 集成DeepSeek ,可以通过以下步骤实现。步骤 1:准备工作访问 DeepSeek 的开发者平台,注册并获取 API 密钥。DeepSeek 提供了与 OpenAI 兼容的 API 端点(例如),确保你已获取正确的 API 地址。
Spring 集成 DeepSeek 的 3大方法(史上最全)
|
SQL 分布式计算 关系型数据库
净利润断层策略
净利润断层策略通过分析公司财报公布后股价的异常波动来选股。当财报超预期且股价跳空高开时,视为买入信号。本文介绍了使用Python和Akshare库实现该策略的具体步骤,包括安装库、获取数据、识别断层及筛选股票等。
|
机器学习/深度学习 算法 数据可视化
探索可解释性机器学习:Breakdown带你了解心脏病随机森林的预测关键
探索可解释性机器学习:Breakdown带你了解心脏病随机森林的预测关键
530 0
探索可解释性机器学习:Breakdown带你了解心脏病随机森林的预测关键
|
数据可视化 IDE Java
Java8的Stream流太难用了?看看JDFrame带来的革新体验
【8月更文挑战第6天】在Java开发者的日常工作中,Java 8引入的Stream API无疑是一个革命性的特性,它极大地简化了集合(Collection)的处理方式,使得数据操作更加声明式、函数式。然而,对于初学者或是从早期Java版本迁移过来的开发者而言,Stream API的复杂性和抽象性可能会成为一道门槛。今天,我们就来探讨如何通过JDFrame这样的工具或框架,以及掌握一些高效学习策略,让Java Stream的使用变得更加得心应手。
615 5

热门文章

最新文章