美文网首页
使用 ETag 识别唯一用户

使用 ETag 识别唯一用户

作者: 耗子吴 | 来源:发表于2015-08-14 15:43 被阅读1014次

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

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

浏览器的缓存策略

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

  1. 浏览器第一次浏览该网页,浏览器向服务器发起下载图片的请求
  2. 服务器返回图片,并为图片加一个 ID 作为标记,这个 ID 叫 ETag,占用的流量为 2M,图片传输消耗时间约5秒
  3. 用户刷新网页,再次请求同一张图片,浏览器会带着上一次服务器分配的 ID
  4. 通过判断 ID 和过期时间,服务器发现这个用户在几分钟前才下载过这个图片,直接返回 403 状态,表示请浏览器直接读取本地缓存,这次占用的流量约等于 0,由于直接读取的本地缓存,图片传输消耗时间为 0。

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

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

如何应用到广告系统

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

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

  1. 为了提高网页浏览速度,浏览器一般不会主动清除缓存,可以和 Cookie 结合使用。
  2. 客户端不需要很高的权限,不需要部署 javascript 代码,一个图片请求就可以实现。

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

相关文章

  • 使用 ETag 识别唯一用户

    在网络上,Cookie 是识别用户的基础,无数的广告投放平台,通过 Cookie 来记录用户的 ID,监测用户看过...

  • 账号体系(1):账号换绑

    平台想要给用户提供个性化的服务,就需要有一个可以唯一识别用户的标识。而账号,就是这个标识。用户可以使用手机号、邮箱...

  • 缓存问题

    两个要点: 关于Etag值的计算,Tornado是使用SHA1算法。 仅处理Get和Head请求中的Etag,对于...

  • 为什么在今日头条里能看到在淘宝搜的内存条的文章?

    一般都是用idfa来识别用户身份,idfa是ios的广告识别码,一种用户ID,由于用户一般不修改,所以接近唯一。这...

  • 信鸽推送集成

    信鸽推送集成 UDID是设备唯一设备识别符,移动广告运营商和游戏网络运营商可以通过这个udid识别玩家用户并对用户...

  • ReactNative获取手机唯一识别码

    最近在项目中遇到一个需求:app需要获取用户手机的唯一识别码然后上传到后台。在此我使用了react-nati...

  • iOS手势识别器

    UIGestureRecognizer UIGestureRecognizer类,用于检测、识别用户使用设备时所用...

  • wifidog认证源码分析Lighttpd1.4.20源码分析之

    etag的全称是entity tag(标记实体值),在RFC2616中关于etag的定义如下: The ETag ...

  • XMPPFramework番外篇之XMPPJID

    用户、房间(群组)都有一个XMPPJID,可以理解XMPPJID就是用户、房间的身份证号,唯一识别码。 1、用户X...

  • 隐私政策

    一、本公司如何收集您的个人信息 个人信息是可用于唯一地识别或联系某人的数据。 当您使用本公司的移动App,注册用户...

网友评论

      本文标题:使用 ETag 识别唯一用户

      本文链接:https://www.haomeiwen.com/subject/pdfwqttx.html