您的位置:首页 > 理论基础 > 计算机网络

关于淘宝橱窗推荐-->用户行为追踪--http协议深入

2015-09-07 21:16 429 查看
http://blog.chinaunix.net/uid-28387257-id-3775638.html


一、引言

最近发现了一件有趣的事:在淘宝搜索相关产品后,到糗事百科或者其他外站浏览资讯时,有很多精准的橱窗推荐,比如我搜索了某本书、洗衣机,橱窗推荐会给出相关书籍、相关价位的洗衣机。无独有偶,亚马逊也在外站有类似的橱窗推荐。这种现象耐人寻味。

思索良久,找人讨论了下。得出这些网站是利用第三方cookie和浏览器dnt追踪用户隐私,从而实现精准推送的。先从头讲起,初学者(包括我在内)对HTTP协议不熟悉,误以为跟踪用户这种行为是通过sessionID实现的,这种想法有一定道理,但实际上不这样做。不过,有想法总是好的,说不定以后会有机会采用session存储的方式,通过IP+PORT来判断用户,也未可知。

那么,为什么不采用服务端存储sessionID的方式呢?答案很简单:成本高。sessionID放在服务端,为了提高用户访问命中率,通常会使用缓存,也就是内存,假设一个session信息2KB,上千万用户的session信息储存成本就很可观了。相反,使用客户端cookie存储信息的方法,虽然需要反复传递,但是耗费的只是流量,流量的成本是很低的,通常1GB也要不了几块钱。cookie里面也有sessionID,用户初次访问网站的时候,会分配唯一的sessionID,这个ID返回客户端,交给cookie存储【引 1】。用户下次访问服务器的时候,会携带这个cookie,里面存储有这个ID。


二、cookie追踪原理

引文到这里,来讲讲cookie如何跨站追踪用户行为。访问一个网站first.com,会生成这个网站相关的cookie,并且只有这个网站可以访问生成的cookie。例如访问淘宝,会生成淘宝相应的cookie,cookie可能有多个,如图1.



图1 淘宝第一方cookie

注意cna这个cookie名称,后面会用到。现在来看访问糗事百科的情况,见图2.



图2 糗事百科-淘宝第三方cookie

糗事百科有关于多个域名的cookie,使用了cookie-cna的域名有两个:cdn.tanx.com strip.taobaocdn.com。CDN是内容分发网络,这两个域名显然都是关于淘宝的。那么,同样的cookie名cna到了这里,为什么叫第三方了呢?这其实是相对而言的。对于糗事百科而言,taobaocdn属于外站,生成的cookie只有淘宝相关的域名才能访问,糗事百科本身的域名访问不了,所以叫做第三方【引
2】。有人说第三方cookie只有一个,不理解什么意思【注 1】。下面来讲讲这个第三方cookie的强大作用。

第三方cookie可用于跨站追踪用户行为,比如从糗事百科访问淘宝这样的行为通过第一方cookie是记录不了的,因为第一方cookie各不关联,而第三方cookie能记录用户访问和点击的动作【引 2】。这对于网站数据分析至关重要,比如,这些数据可以直接反应广告投放的精准度。

三、浏览器dnt

前段时间,360推出了浏览器反追踪功能,从而让cookie追踪这种行为的讨论甚嚣尘上【引 6】。dnt的全称是do not track。这种协定早在5年前就已经提出。360推出这种功能很大程度上是为了吸引眼球。从本质上来说,dnt只是一种君子协定,浏览器只发送了dnt信息,但服务端遵守与否是另一回事【引 7】。

实际上,cookie技术虽然备受诟病,但却不可或缺,因为购物车这种功能就是cookie的典型应用,如果完全禁用cookie,那么,用户会有极大的不便。想在外站完全禁止广告投放也没有实现的可能性,这对于许多网站来说是赚钱的命脉所在。那么,能不能在外站禁止第三方cookie呢?第三方cookie和第一方cookie本质来说是一样的,不过这仍然是个值得讨论的问题,下次有机会再谈。

引用:

【1】 http://www.jz123.cn/text/196.html sessionID和cookie。

【2】http://linux.cn/thread/4124/1/1/ 第一方cookie vs 第三方

【3】 http://www.szwebanalytics.com/first-three-party-cookie.html 第一方cookie和第三方

【4】http://www.biaodianfu.com/first-party-cookie-and-third-party-cookie.html 同上

【5】 http://help.iteye.com/blog/1587074 同上

【6】 http://net.chinabyte.com/288/12551788.shtml 360退出dnt

【7】 http://www.cr173.com/html/18326_1.html 浏览器禁止追踪

【8】 http://www.oschina.net/news/35175/do-not-track 同上

注解:

【1】这里的“只有一个”,原句见引用【2】,意思可能是说,多个外站都引导的淘宝的cookie都使用一个,比如cna这个cookie。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: