关于淘宝橱窗推荐-->用户行为追踪--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如何跨站追踪用户行为。访问一个网站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】。这对于网站数据分析至关重要,比如,这些数据可以直接反应广告投放的精准度。
实际上,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。
一、引言
最近发现了一件有趣的事:在淘宝搜索相关产品后,到糗事百科或者其他外站浏览资讯时,有很多精准的橱窗推荐,比如我搜索了某本书、洗衣机,橱窗推荐会给出相关书籍、相关价位的洗衣机。无独有偶,亚马逊也在外站有类似的橱窗推荐。这种现象耐人寻味。思索良久,找人讨论了下。得出这些网站是利用第三方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。
相关文章推荐
- tcp的Nagle算法
- 网络编程之socket、epoll
- TCP四种定时器
- java下tcp的socket连接
- HTTP响应报文与工作原理详解(转)
- 记录一个查询颜色RGB和HSV值还有HTTP状态码等的网站
- ab源码分析 (2013-07-12 13:00:06) http://blog.sina.com.cn/s/blog_999d1f4c0101e18f.html
- apache ab 输出结果详细解析(源码分析) http://my.oschina.net/lubia/blog/177186
- Cocos2dx引擎笔记——HttpClient session
- TestUrlHttpConnection
- TCP/IP,http,socket,长连接,短连接——小结。
- Cocos2dx引擎笔记——如何使用HttpClient
- 快速Android开发系列网络篇之Retrofit, Retrofit OKHttp GSON
- CentOS下使用tcpdump网络抓包用
- linux安装apache的纠结过程 http://www.cnblogs.com/fnng/archive/2012/08/30/2662984.html
- TCP标志位之RST
- 网络编程
- ioS开发之网络--网络基础概况
- iOS开发之网络--服务器配置
- <meta http-equiv="refresh" content="0; url=">什么意思?