作者:微信小助手
发布时间:2020-04-19T21:14:31
(给前端大全加星标,提升前端技能)
作者:code秘密花园 公号 / ConardLi (本文来自作者投稿)
苹果公司前不久对 Safari
浏览器进行一次重大更新,这次更新完全禁用了第三方 Cookie
,这意味着,默认情况下,各大广告商或网站将无法对你的个人隐私进行追踪。而微软和 Mozilla
等也纷纷采取了措施禁用第三方 Cookie
,但是由于这些浏览器市场份额较小,并没有给市场带来巨大的冲击。
从 2017
年截至 2019
年底, Google
面临的罚款总额已经超过 93 亿欧元,其中一大原因便是侵犯用户数据隐私。迫于巨大压力,Google Chrome
官方团队前不久也宣布,为了提升用户隐私和安全,未来两年将完全禁用第三方 Cookie
。
在完全不能写入三方 Cookie
的情况下,将会对前端的数据读写方式,甚至是整个广告行业带来巨大影响。
众所周知,HTTP
协议是无状态的协议,如果你在同一个客户端向服务器发送多次请求,服务器不会知道这些请求来自同一客户端。
这正是 HTTP
协议得以广泛应用的原因,试想一下,如果它是有状态协议,你必须要时刻与服务器建立链接,那么如果连接意外断开,整个会话就会丢失,重新连接之后一般需要从头开始;而如果是无状态协议,使得会话与连接本身独立起来,这样即使连接断开了,会话状态也不会受到严重伤害,保持会话也不需要保持连接本身。
如果 HTTP
协议只是用来访问静态文件,那不会有任何问题,但是如果你要为广大用户提供更好的服务,服务器就需要知道每个请求具体来自于哪个用户,比如你在逛淘宝的时候你只需要登录一次,当你发起一次购买请求,服务器就已经知道你登录过了,不会再让你进行登录。
所以 HTTP
协议需要占用浏览器的一小块存储,存储当前访问用户的一些 ”状态“,然后每次发起 HTTP
请求,请求中就会携带这些状态,从而让服务器知道你是谁。Cookie
出现的的意义就是为了解决这个问题,让无状态的 HTTP
协议拥有一小块记忆。
但是, Cookie
一经出现,就成了各大广告和购物网站窥探用户隐私的利器,他们使用第三方 Cookie
不断获取你的数据,那么什么第三方 Cookie
呢?
如果是你正常的正在逛着天猫,天猫会把你的信息写入一些 Cookie
到 .tmall.com
这个域下,然而打开控制台你会看到,并不是所有 Cookie
都是 .tmall.com
这个域下的,里面还有很多其他域下的 Cookie
,这些所有非当前域下的 Cookie
都属于第三方 Cookie
,虽然你可能从来没访问过这些域,但是他们已经悄悄的通过这些第三方 Cookie
来标识你的信息,然后把你的个人信息发送过去了。
而 .tmall.com
这个域下的 Cookie
都属于第一方 Cookie
,那么为什么还需要第三方 Cookie
呢?再打开 taobao.com
,你会发现你已经不需要再登录了,因为淘宝、天猫都属于阿里旗下的产品,阿里为他们提供统一的登录服务,同时,你的登录信息也会存到这个统一登录服务的域下,所以存到这个域下的 Cookie
就成了三方 Cookie
。
我们再打开已经完全禁用了第三方 Cookie
的 Safari
,发现只剩下 .tmall.com
这个域下的 Cookie
了。
这时你会发现即使你已经登录了天猫,再访问淘宝也还是需要登录的,你已经无法享用这样的功能了,而三方 Cookie
可不仅仅就这么点用途,在 Web
开发中,三方 Cookie
的应用非常之广,下面我们再来具体看几个应用场景:
大多数 Web
站点都会引用一些第三方 SDK
来进行前端异常或性能监控,这些 SDK
会通过一些接口将监控到的信息上传到他们的服务器。一般它们都需要标识每个用户来方便排查问题或者统计 UV
数据,所以当你一此请求这个站点的时候,它们可能会在你的站点上 set
一个 Cookie
,后续所有的日志上报请求都会带上这个 Cookie
。
由于一般这些第三方 SDK
都是用于监控的通用服务,它们肯定会拥有自己独立的域名,比如 log.com
,它在你的域名 mysite.com
下种下的 Cookie
就属于第三方 Cookie
。