使用ETag识别ajax,使用 ETag 识别唯一用户

本文探讨了在Cookie识别用户变得不准确的情况下,如何利用浏览器缓存的ETag特性来记录和识别用户身份。通过服务器设置的ETag,可以在用户再次请求资源时,通过携带的ID推断用户兴趣,从而实现更精准的广告投放。这种方法利用了浏览器的缓存策略,减少了网络传输,提高了页面加载速度。同时提到了Evercookie项目,即使在清除Cookie和开启隐私模式下,也能识别用户ID。
摘要由CSDN通过智能技术生成

在网络上,Cookie 是识别用户的基础,无数的广告投放平台,通过 Cookie 来记录用户的 ID,监测用户看过什么广告、点过什么广告、看过哪些网页,通过这些信息推算用户的兴趣爱好,进而再推送更加精准的广告。

越来越多的浏览器推出“无痕浏览”、“隐私模式”等功能, 360 等安全卫士软件也自带了清理 Cookie 的功能,这就导致常规使用 Cookie 识别用户身份的手段越来越不准确,这里介绍另一种方法,使用浏览器缓存的特性,来记录和识别用户的唯一身份。

浏览器的缓存策略

当用户浏览不同的网页时,图片等静态资源会重复下载,比如网站的 logo,每浏览一次,logo 图片都会重复下载一次,为了避免资源浪费,服务器可以设置如下的机制:

453dfac6979b

浏览器第一次浏览该网页,浏览器向服务器发起下载图片的请求

服务器返回图片,并为图片加一个 ID 作为标记,这个 ID 叫 ETag,占用的流量为 2M,图片传输消耗时间约5秒

用户刷新网页,再次请求同一张图片,浏览器会带着上一次服务器分配的 ID

通过判断 ID 和过期时间,服务器发现这个用户在几分钟前才下载过这个图片,直接返回 403 状态,表示请浏览器直接读取本地缓存,这次占用的流量约等于 0,由于直接读取的本地缓存,图片传输消耗时间为 0。

通过以上的策略,可以减少网络传输,加快页面加载时间。

服务器设置的 ETag 以及在浏览器中自动携带的参数,具体为 Response Header 中的 ETag 和 Request Header 中的 If-None-Match ,浏览器开发者工具查看结果如下图:

453dfac6979b

如何应用到广告系统

既然浏览器在第二次请求图片的时候会带着服务器分配的 ID,那么这个 ID 就可以作为识别用户身份的依据,用户第一次访问,请求一个广告资源,服务器为图片设置一个 ID(ETag),通过 referral 获取用户浏览网页的地址,通过语义分析判断该用户的兴趣爱好,当用户再次浏览时,客户端携带这个 ID 请求服务器,这一次服务器便知道了该用户的兴趣爱好,针对性投放更加精准的广告。当然,背后用户兴趣的判断是基于海量浏览记录, 用户 ID 的识别也不能单靠 ETag,需要和其他很多策略混合使用。

使用 ETag 识别唯一用户的优点:

为了提高网页浏览速度,浏览器一般不会主动清除缓存,可以和 Cookie 结合使用。

客户端不需要很高的权限,不需要部署 javascript 代码,一个图片请求就可以实现。

对唯一用户识别的研究,国外有个非常著名的项目叫 Evercookie,使用十几种方法来标记用户 ID,清除 Cookie 同时清除缓存,甚至开启浏览器的隐私模式依旧能识别出你的用户 ID,此项目在 github 中开源,感兴趣的可自行研究其源码。关于 Evercookie 的中文介绍: http://www.ituring.com.cn/article/35102

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值