捍卫Cookie——没有Cookie,我们什么都没有了

   开始正文前,先说点儿题外话。Google Analytics最近推出了API接口功能,开发人员可以将Google Analytics的数据和功能集成在自己的应用中。详细内容请见这里

  话归正题。当微软还没有推出IE8的时候,老实说,我就不喜欢这个浏览器。这不是来自于我对微软的偏见(这个公司确实非常伟大),而是来自于我对Cookie这个美好事物的无比忠诚。但是,IE8的出现,让我们的美好蒙上一层厚厚的阴影。不过,当一切还没有变得非常严重之前,让我们先来了解一下Cookie是什么,它对于我们的意义,以及我们为什么需要捍卫它。

  • 什么是Cookie以及Cookie的作用

  Cookie是在你浏览网页的时候,网站服务器放在客户端(Client End,就是你的电脑)里面的一个小小的TXT文件。这个文件里面存储了一些与你访问的这个网站有关的一些东西,当你下一次访问这个网站的时候,Cookie就会记住你上次访问时候的一些状态或者设置,让服务器针对性的发送页面的相关内容。Cookie里面包含的信息并没有一个标准的格式,各个网站服务器的规范都可能不同,但一般会包括:所访问网站的域名(domain name),访问开始的时间,访问者的IP地址等客户端信息,访问者关于这个网站的一些设置等等。比如,你设置的诸如Google一个页面要显示几条搜索结果之类的信息,即使你不登录你的Google账号,你下次访问时也能够保存下来,这就是上次你访问时把相关信息放入了Cookie的效果。如果是在线购物网站,还记录了一些你的购物车,储物架以及你的账户名等信息。另外有些网站则会通过Cookie把你的登录账号和密码记下来,这样你下次打开浏览器就会自动登录。

  当然,如果你在系统文件夹中打开Cookie的TXT文件,你并不会看到这些信息而只能看到一串乱七八糟的字符,因为为了安全起见,Cookie的内容一般都是加密的,只有对应的服务器才能读懂。另外,由于Cookie只是TXT文件,而不是程序,更不是病毒,不能自己运行,不会对操作系统和其他任何计算机程序产生影响,也不会通过互联网传播,因此它对互联网安全实际上不构成威胁。

[版权归作者Sidney Song所有,欢迎转载,但请事先告知作者并注明出处]

  对于网站分析而言,Cookie的作用在于帮助嵌入代码类的网站分析工具记录网站的访问(Visit)和访问者(Unique Visitor)的信息,没有Cookie就无法实现相关监测。而通过服务器端Log来进行网站分析的软件则不需要Cookie也能实现相关分析,因此Cookie只对嵌入代码类工具有效。那些你耳熟能详的工具——Google Analytics、Omniture、HBX、WebTrends(嵌入代码版)等等,都需要在网站访问者的电脑上放置Cookie才能实现监测。

  • Cookie的数量和时效

  Cookie的数量是指一个网站可以在客户端放置Cookie的个数。一个网站并不是只能放置一个Cookie在客户端,而是根据需要,会放置多个不同的Cookie。对网站分析工具而言,帮助监测Visit的Cookie和帮助监测Unique Visitor的Cookie就不能是一个,而应该分开设置。对每一个网站(域)而言,不同浏览器能够支持的最多Cookie数是不同的。IE7和FireFox3.0支持每个网站50个Cookie,而Opera则支持30个。无论是30还是50,基本都够用了。

  Cookie的时效(expiration)是另一个非常重要的概念,也是Cookie的重要属性之一。任何Cookie都是有时效的,有些Cookie的有效时间很短,有些Cookie则在浏览器关闭的同时自动失效,而有些则是号称”永久Cookie”。其实,Cookie的时效是在服务器端人为设置的,可以设置为1秒,也可以设置10年,也可以设置在浏览器关闭的同时失效,完全根据不同情况的需要。永久Cookie就是指那些时效很长的Cookie,但不是真的永久。暂时性的Cookie是指随浏览器关闭就失效的Cookie。

  Cookie的时效性对于网站分析监测意义重大。Visit的监测依赖于Cookie的时效。例如,Google Analytics对Visit的Cookie设置了两个时效,一个是30分钟,另一个是浏览器关闭时。这就意味着,如果Visit Cookie在30分钟内没有更新,这个Cookie就失效了——这就是为什么我们说Visit这个度量衡量的是间隔不超过30分钟的页面浏览过程,如果两次页面浏览之间的时间超过了30分钟,那么Visit计数会被增加1。另外,如果你打开一个网站,看了一会儿就关掉浏览器,那么当你再次打开浏览器重新开这个网站的时候,即使两次浏览没有超过30分钟,也会被计算为一个新的Visit,原因就是Visit Cookie浏览器关闭时效结束的设置起的作用。

[版权归作者Sidney Song所有,欢迎转载,但请事先告知作者并注明出处]

  Unique Visitor也依赖于Cookie的时效。如果这个Cookie的时间设定为2天失效,那么你今明两天都访问同一个网站,Unique Visitor只会记录为从0增加到1;而如果你第三天又来,那么Unique Visitor就会再增加计数一次,共计2次。除了Visit和Unique Visitor外,Return visitor、Frequency等等度量当然也依赖于Cookie的时效。

  • 1st party cookie和3rd party cookie

   第一方Cookie和第三方Cookie其实是一个非常简单的概念,但是我在百度上随便搜索了一些解释,好像都不是很清楚,也不是很准确。实际上,所谓第一方和第三方的说法,是用来确定Cookie的归属的,这个归属是指Cookie中记录的域(domain)。举个例子:如果你访问我的这个网站www.chinawebanalytics.cn的时候,我的网站在你的电脑上设置了一个Cookie,里面的记录的域名也是www.chinawebanalytics.cn,那么这个Cookie就是第一方的,归你访问的网站www.chinawebanalytics.cn所有。而如果你访问网站www.chinawebanalytics.cn时,在你的计算机中设置的Cookie的域名是www.omd.com,那么这个Cookie就是第三方Cookie,归www.omd.com所有。

  对于网站分析而言,这个概念是非常重要的。例如,你会问Google Analytics使用的Cookie是1st party的,还是3rd party的。答案是第一方的。首先,Google Analytics在每个被监测网站上的Cookie都是由我们熟悉的监测javascript代码所创建的(是的,javascript也可以创建Cookie,知道这点就够了,不需要深挖),其次,这个被创建的cookie的域不是analytics.google.com,而是被监测网站自己的域。因此,虽然这个Cookie实际上是在Google Analytics的帮助下建立的,而且也为Google Analytics所用(反而不能被“被监测网站”直接利用),它仍然是第一方Cookie。

  所以,第一方Cookie并不一定需要由某个网站自己的服务器给自己建立,别的网站也能为它建立;而且,第一方Cookie也不一定是能由某个网站自己读取的,它完全可能由第三方读取。第一方和第三方的唯一区别只是:Cookie中的域名是否和被访问网站的域一样,是就是第一方,否就是第三方。

  这真的是一个容易混淆的概念,希望看了我上面的内容您弄清楚了。

[版权归作者Sidney Song所有,欢迎转载,但请事先告知作者并注明出处]

  网站分析和所有的互联网广告的监测,都会更喜欢第三方Cookie。原因是,第三方Cookie可以用来监测跨网站的访问者行为。例如,DoubleClick使用的就是第三方Cookie,这个公司会为你打开的所有载有DoubleClick广告的页面建立同一个(仅一个)域为DoubleClick的Cookie,这样,只要你打开了这些网页,无论它们是否属于同一网站,你的浏览广告的行为DoubleClick都能知道。但是第一方Cookie就不行了,因为第一方Cookie得用被监测网站的域,这样多个网站就会有多个不同的Cookie,跨网站浏览行为就无法监测了。

  对于大多数浏览器而言,第三方Cookie是被默认关闭的,原因在于人们在讨论Cookie涉及的隐私问题时,倾向于认为第三方Cookie极大的获取了人们的行为隐私,并由此产生了对第三方Cookie普遍的不信任和误解。但事实上,所有的Cookie都不会泄露任何关于浏览者个人的隐私信息,它捕捉的仅仅只是浏览行为本身,第三方Cookie也不例外。而如果所有人都愿意接受第三方cookie,那么网站分析能够给出的分析和优化方案会更多。但可惜,因为第三方Cookie被普遍禁用,因此利用第三方Cookie的监测工具并不多,只有监测网络广告的工具才会坚持使用第三方Cookie。

  • 没有Cookie,还能监测到什么?

  由于第三方Cookie不受欢迎,很少有网站分析工具会采用它。而如果完全没有Cookie,那么网站分析工具几乎无法工作。但实际上,如果没有Cookie,还是能监测到一点儿东西的。这个东西是PV。因为PV的监测只要引发javascript监测代码就可以,跟cookie无关。例如,在Omniture中,如果某个客户端禁用cookie,Omniture还是会记录这个客户端贡献的PV,但完全无法记录Visit,这就会使这个工具监测的PV/Visit会比实际值略大。说点儿题外话:在没有Cookie的时候,Omniture会退而求其次用访问者客户端IP地址来辨别不同的Visitor(Unique Visitor),这样禁用cookie后unique visitor其实还能监测,但由于visit不能监测了,因此有可能在Omniture中出现Unique Visitor大于Visit的情况。

  没了Cookie,除了PV,其他的度量基本上就获得不了数据了,所以我会认为没有Cookie,我们什么都没了。或者Visitor和Visitor所在的地理位置还能通过IP地址获得,但众所周知的原因,这个数据是非常不精确的,我们需要Cookie。

  那么,你会问,多少客户端会禁用Cookie呢?我没有精确的数字,但我认为第一方Cookie应该会有大概80%的用户正在使用,只有20%左右会禁用它。而第三方Cookie,由于是默认不开启的,因此我估计顶多只有20%的人在使用它。

[版权归作者Sidney Song所有,欢迎转载,但请事先告知作者并注明出处]

  随着IE8的出现,肯定会进一步降低Cookie的使用率,这也将进一步降低网站分析数据的样本数量。我不认为这会降低网站分析工具在描述定性问题时的准确性(定性问题例如Bounce Rate,例如Time on site,以及Returning visitor和New visitor的比例),但在描述定量问题时会出现误差,或者更确切地说会偏小。如果随着Cookie禁用比例的增加,超过50%的人都禁用的话,那么网站分析的原有方法论就会有麻烦了。不过,我肯定不相信Cookie禁用比例会有剧烈的上升,我很乐观——Cookie带给人们的方便远远要比一些不足一提的隐私问题要多的多要大的多。禁用Cookie更多只是心理的慰藉(其实大多数时候一定只是心理上的感觉,而没有什么实际的对安全和隐私的帮助),但带来的不方便则会直接影响你的浏览体验。

  因此,无论是为了我们的专业本身,还是为了让浏览网页的用户有更好的体验,或是为了让网站本身能够创造更多的便利化应用,我们都有足够的理由支持Cookie,反对微软的IE8色情浏览模式,捍卫我们应该捍卫的——这代表着智慧和进步。Eric Peterson写给总统奥巴马的那封公开信值得看看,这代表着我们所有网站分析从业者的最强烈呼声。【全文完】

  大家同意我的看法吗?有任何技术性错误吗?有任何意见吗?请大家给我留言吧!

未经允许不得转载:版权归宋星及chinawebanalytics.cn所有宋星的数字观 » 捍卫Cookie——没有Cookie,我们什么都没有了
分享到: 更多 (0)

评论 43

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    所谓的安全浏览模式…貌似也就是人们不想留下浏览的蛛丝马迹,或许,浏览色情页面合理化,道德化也能让人们摒弃这种多此一举的模式^^

    开玩笑,支持cookie…没有cookie,现在的数据模型及理论偏颇就大了.

    Yacca16年前 (2009-04-27)回复
  2. #-48

    IE 8 已经超过了firefox3,比IE7进步还是很大地

    John16年前 (2009-04-27)回复
  3. #-47

    支持。原来还觉得第三方cookie可能确实存在隐私问题,现在从Sidney的详细论述中,细想来cookie确实不构成隐私威胁。

    但我们支持不知道能起多大作用呢,微软也许还是会吧IE8的 安全浏览模式推行下去。如果整个互联网都反对的话,特别是现在的论坛,sns网站都需要cookie吧?我想问题会有其他的解决办法。

    Born16年前 (2009-04-28)回复
  4. #-46

    我在自己的博客写过一些关于隐私保护的粗浅看法,http://yesweet.spaces.live.com/blog/cns!FF35CC6CCA746A2B!680.entry

    我也认为,cookie的利用的合法性是网络分析的基础。

    前段时间,google的一个演讲当中听到一个很有意思的比方,他说当年的信用卡开始的时候,要用户填写很完善的客户资料,人们还有担心资料泄露,后来事实证明,银行如果可以从信用卡业务中长期受益,必然主动保护用户隐私,这个观点比较有启发性。

    Liang16年前 (2009-04-30)回复
  5. #-45

    用的最多的还是,方面吧,每次都省了登陆,这就是最方便之处!

    会律博客16年前 (2009-05-02)回复
  6. #-44

    嗨,美国人矫枉过正的隐私保护。

    微软不懂互联网。

    孙波16年前 (2009-05-04)回复
  7. #-43

    嗯~重点不在于微软认为,而在于民众认为。

    hu16年前 (2009-05-06)回复
  8. #-42

    看这个事情到底怎么发展吧,不知道微软到底怎么想的

    laveri16年前 (2009-05-07)回复
  9. #-41

    这一块完全不懂,受教受教!

    Bryant16年前 (2009-06-23)回复
  10. #-40

    COOKIE是存在安全隐患的,这取绝于网站技术部门(或WEB安全工程师)的应对策略!

    网络营销策划15年前 (2010-01-20)回复
  11. #-39

     
    唯一标识访客的方法从前只有Cookie,如果离开Cookie的话,再访问将没有办法分析。但是随着Flash插件装机的普及(几乎很少有个人PC不安装Flash插件的),标识唯一访客的方法有出现了新的选择——Flash的ShareObject也可以唯一的标志访客,并且不易被清除,如果在结合Cookie+(UserAgent+IP)动态选择的话,基本可以对付90%以上的访客了吧。
    所以说没有Cookie什么都做不了也不太准确。

    孙立冬15年前 (2010-03-10)回复
  12. #-38

    רҵ

    94815年前 (2010-06-05)回复
  13. #-37

    即使没有cookie,服务器日志上不同样记录了visit么?那也可以得到visit数据啊。不太懂,不知道我说的对不对

    hjmao15年前 (2010-07-19)回复
  14. #-36

    Google分析工具的流量来源是通过什么记录的?
    应该不是cookie吧,因为cookie在用户第一次访问网站的时候还没有建立,等它建立之后已经无法得到流量来源的数据了。
    请教博主?

    SEO14年前 (2010-08-20)回复
  15. #-35

    Sindey,
    文章对于第三方cookie忧虑可能说得过于严重了。现代浏览器,如chrome,opera,firefox,包括ie8默认都是支持第三方cookie的。只是为了保护用户隐私,微软在IE7以后的浏览器版本中特别加入了对W3C的P3P标准的支持。对于第三方cookie在植入前只需提供P3P信息即可不受浏览器限制。中文IE将P3P翻译成 “紧凑隐私策略” ,它在“隐私”默认项即被支持。
    P3P所提供的信息只是一个使用cookie方的声明,浏览器本身并不能强制验证其有效性,所以只要提供P3P信息,第三方cookie的使用即可以在IE默认状态下畅通无阻了。
    我看了下IE的Privacy,即时隐私限制在“High”级别,带P3P的第三方cookie仍然是支持的,所以第三方cookie和第一方cookie其实在IE浏览器限制级别上并没有想象中那么大。但有些浏览器,比如Opera,它有单独的选项可以让你选择是否只接受所访问网站的cookie(第一方cookie)
    所以大家不用担心啦,专心于网站分析即可,我相信第三方cookie是不可能被浏览器默认关闭的, 现在不会,以后也不会. :)

    seagle14年前 (2010-09-05)回复
    • 非常感谢你的补充!很丰富我们的知识!我同意你,其实现在看来完全没有那么严重。

      Sidney Song14年前 (2010-09-11)回复
  16. #-34

    更正一下 “ 只是为了保护用户隐私,微软在IE7以后的浏览器版本中特别加入了对W3C的P3P标准的支持。 ”,其实IE6在特定版本之后就已支持P3P标准的cookie了。
    可以从这里知道IE是如何细致入微地考虑隐私问题:
    http://www.microsoft.com/windows/ie/ie6/using/howto/privacy/config.mspx#EYE (2003/3/26)
    http://blogs.msdn.com/b/ieinternals/archive/2010/06/05/understanding-internet-explorer-cookie-controls.aspx (2010/6/5)
    微软也许确是执行缓慢地公司,但它对细节的精深不懈是毋庸置疑。这是值得所有中国技术型公司好好学习的:)

    Seagle Kan14年前 (2010-09-05)回复
  17. #-33

    “对于大多数浏览器而言,第三方Cookie是被默认关闭的”,虽然如此,但通过P3P技术,即使默认关闭,但第三方Cookie是可以跨域的。所以不管是监测广告还是统计网站,用支持跨域的第三方cookie是更好的方案。
    JYC统计原先采用第一方COOKIE,为了更好的追踪同一访客在不同域的活动情况,目前默认采用了第三方Cookie的方法。

    jieyancai14年前 (2010-12-07)回复
  18. #-32

    您好,我想咨询一下,现在除了使用PC访问网站外,还有大量用户通过手机或IPAD之类的终端来访问网站,这些终端也是通过Cookie来辨认并记录访客的吗?

    Yolanda14年前 (2011-04-06)回复
    • 回复Yolanda:对于GA而言,必须要cookie,没有cookie就无法捕获到数据。

      Sidney Song14年前 (2011-04-07)回复
  19. #-31

    我想Cookie是否被禁用与是否被默认开启,都是值得讨论的话题,Cookie的诞生并不是为了网站的监测与分析。

    拒绝潜水的鱼13年前 (2011-08-21)回复
  20. #-30

    25

    Clemente Oliger13年前 (2011-09-27)回复
  21. #-29

    哥伦布路经此地,却不觉发现新大陆,怎一个兴奋了得!

    Inernet新手13年前 (2012-06-02)回复
  22. #-28

    ”在没有Cookie的时候,Omniture会退而求其次用访问者客户端IP地址来辨别不同的Visitor(Unique Visitor),这样禁用cookie后unique visitor其实还能监测,但由于visit不能监测了,因此有可能在Omniture中出现Unique Visitor大于Visit的情况。”
    宋老师,这个好像没法检测到,用户拒绝cookies后流量“降了”,请问还有其他方法么

    数据分析菜鸟6年前 (2019-06-04)回复
    • 目前很多工具利用的是浏览器指纹(canvas fingerprint)的方法。

      宋星6年前 (2019-06-04)回复
      • 感谢宋老师!之前以为这个也会违反cookies政策,现在再去研究下其原理!

        数据分析菜鸟6年前 (2019-06-05)回复