`
takkymj
  • 浏览: 128137 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

什么是Cookie?Cookie的详细介绍

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

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


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

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

  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中的域名是否和被访问网站的域一样,是就是第一方,否就是第三方。

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

  网站分析和所有的互联网广告的监测,都会更喜欢第三方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%的人在使用它。

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

相关推荐

    微信小程序cookie维护插件 实现自动设置获取cookie功能

    本文将详细讲解如何使用微信小程序中的cookie维护插件,实现自动设置和获取Cookie的功能,并特别关注增加的Cookie超时处理机制。 首先,理解Cookie的基本概念。Cookie是由服务器端生成,发送到客户端(浏览器)的一...

    如何在浏览器里启用Cookie?.docx

    一、什么是 Cookie? Cookie 是一种小型文本文件,存储在用户计算机上的文件,用于存储用户信息。Cookie 由网站创建,并将信息存储在计算机上,例如访问站点时的首选项。Cookie 也可以存储个人可识别信息,例如姓名...

    什么是cookie?js手动创建和存储cookie

    什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当...

    Java 模拟cookie登陆简单操作示例

    是什么是 Cookie? 在了解 Java 模拟 Cookie 登陆之前,我们需要首先了解什么是 Cookie。Cookie 是一种小型文本文件,用于存储 Web 应用程序的状态信息。当用户访问某个网站时,该网站可能会将 Cookie 信息写入到...

    程序化广告 关键点 什么是CookieMapping.docx

    ### 程序化广告中的关键技术点:Cookie与Cookie Mapping #### 一、Cookie的概念及其重要性 在探讨Cookie Mapping之前,我们首先需要了解Cookie的基本概念。Cookie是一种用于跟踪用户在网络上的活动信息的小型文本...

    C#操作cookie,解密加密cookie

    在IT领域,尤其是在Web开发中,Cookie的管理与安全至关重要。C#作为一种广泛使用的编程语言,在处理Cookie方面提供了丰富的功能,包括对Cookie的加密与解密。本文将深入探讨如何在C#中操作Cookie,以及如何实现...

    cookie读写,子cookie

    在Web开发中,Cookie是一种非常重要的技术,用于在客户端和服务器之间传递状态信息。Cookie的主要功能包括用户会话管理、个性化设置保存、跟踪用户行为等。在这个“cookie读写,子cookie”主题中,我们将深入探讨...

    微软Edge浏览器怎么设置禁止禁用Cookie?.docx

    微软 Edge 浏览器 Cookie 设置指南 Cookie 是一种小型文本文件,由 Web 服务器生成并存储在用户的计算机上,用于存储用户的个人信息和首选项,以便在后续访问时提供个性化服务。然而,Cookie 也可能会带来隐私问题...

    关于java应用cookie

    ### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 ...通过以上介绍,我们可以了解到Java中Cookie的基本使用方法以及相关的安全性和注意事项。这些知识点对于开发基于Java的Web应用程序非常重要。

    [废弃]JS cookie存取功能(加密优化版)

    什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当...

    获取cookie非常好用的google插件

    3. 在插件界面,用户可以看到当前页面所有Cookie的列表,每个Cookie都有详细信息如名称、值、路径、域名、过期时间等。 4. 用户可以编辑、添加、删除、禁用或启用单个Cookie,也可以一键清除所有Cookie。 5. 插件还...

    session与cookie的区别和联系?

    ### Session与Cookie的区别和联系 #### 一、概念解析 - **Cookie**:Cookie是一种小型的数据文件,由服务器端生成并发送给用户浏览器,浏览器在本地(如用户的硬盘)保存该文件,然后每一次请求同一网站时都会把该...

    Cookie浏览器

    在了解Cookie浏览器之前,我们先来详细探讨一下Cookie及其相关概念。 1. **Cookie的定义与工作原理** - Cookie是由Web服务器发送到用户的浏览器并存储在那里的一小块信息,当用户再次访问同一网站时,浏览器会将...

    Cookie登录记录用户账号信息

    标题“Cookie登录记录用户账号信息”揭示了一个关键的Web开发概念,即如何使用Cookie来管理用户的登录状态。在Web应用程序中,Cookie常被用来存储用户的一些临时或持久性信息,如登录状态、用户首选项等。这是因为...

    怎样阻止所有网站的Cookie?.docx

    以下是一些详细的步骤,教你如何在不同的浏览器中阻止网站Cookie: **在Windows操作系统中通过Internet Explorer阻止Cookie:** 1. 首先,点击电脑屏幕左下角的“开始”菜单,然后选择“控制面板”。 2. 在打开的...

    Cookie介绍ppt

    ### Cookie介绍及应用 #### 一、Cookie的基本概念与作用 **Cookie** 是一种轻量级的数据存储技术,主要用于在用户的计算机上存储少量信息。它由服务器生成,并发送到用户的浏览器,然后浏览器会将该信息存储在本地...

    jquery 设置cookie、删除cookie、获取cookie

    jQuery 提供了一个非常方便的方式来处理这些操作,本文将详细介绍如何利用 jQuery 和其插件来设置、获取及删除 Cookie。 #### 二、环境搭建 首先,确保您的项目环境中已经包含了 jQuery 库。可以使用 CDN 方式引入...

    cookie,jsp详细介绍

    ### Cookie详解及JSP中的应用 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的浏览器信息。它被广泛应用于网站中,帮助网站记住用户的偏好设置或登录状态等信息,从而提供更个性化的用户体验。 ####...

    EditThisCookie.crx cookie编辑导入导出利器

    《EditThisCookie.crx:强大的Cookie管理工具及与curl的集成》 在互联网浏览中,Cookie扮演着重要的角色,它们存储用户信息、保持登录状态、个性化网页内容等。EditThisCookie.crx是一款专为Chrome浏览器设计的强大...

    Cookie将用户名和密码加密后存在客户端的Cookie当中

    #### 一、背景介绍 在网络应用中,为了提供便捷的用户体验,许多网站都提供了“记住我”的功能。这一功能可以让用户在下次访问时无需重新输入用户名和密码即可直接登录。实现这一功能的一种常见方法是通过在用户的...

Global site tag (gtag.js) - Google Analytics