大多数互联网Cookie都极其简单,但它们却已自成一体。Cookie在2000年因互联网隐私问题而受到媒体的极大关注,这场争论至今仍在继续。
另一方面,Cookie提供了使网络导航更加便捷的功能。几乎所有主要网站的设计者都使用它们,因为它们提供了更好的用户体验,并使收集关于网站访问者的准确信息变得更加容易。
广告
在本文中,我们将探讨Cookie背后的基本技术,以及它们所实现的一些功能。
大多数互联网Cookie都极其简单,但它们却已自成一体。Cookie在2000年因互联网隐私问题而受到媒体的极大关注,这场争论至今仍在继续。
另一方面,Cookie提供了使网络导航更加便捷的功能。几乎所有主要网站的设计者都使用它们,因为它们提供了更好的用户体验,并使收集关于网站访问者的准确信息变得更加容易。
广告
在本文中,我们将探讨Cookie背后的基本技术,以及它们所实现的一些功能。
2000年4月,我在一份大型、受人尊敬的报纸上读到一篇关于互联网隐私的深度文章,其中包含一个关于Cookie的定义。这个定义大致是这样的:
新闻界中这类定义相当常见。问题是,这些信息没有一个是正确的。Cookie不是程序,它们不能像程序一样运行。因此,它们无法自行收集任何信息。它们也无法从你的机器上收集关于你的任何个人信息。
广告
以下是Cookie的有效定义:Cookie是Web服务器可以存储在用户硬盘上的一段文本。Cookie允许网站在用户的机器上存储信息,并在以后检索它。这些信息以名称-值对的形式存储。
例如,一个网站可能会为每个访问者生成一个唯一的ID号码,并使用Cookie文件将该ID号码存储在每个用户的机器上。
如果你使用微软的Internet Explorer浏览网页,你可以看到你机器上存储的所有Cookie。它们最常见的存放位置是在一个名为c:windowscookies的目录中。当我查看我机器上的这个目录时,我找到了165个文件。每个文件都是一个文本文件,其中包含名称-值对,每个在我的机器上放置了Cookie的网站都有一个文件。
你可以在目录中看到,这些文件都是简单的普通文本文件。通过查看文件名(信息也存储在文件中),你可以知道是哪个网站将该文件放置在你的机器上。你可以通过点击它来打开每个文件。
例如,我访问过goto.com,该网站在我的机器上放置了一个Cookie。goto.com的Cookie文件包含以下信息:
UserID A9A3BECE0563982D www.goto.com/
Goto.com在我的机器上存储了一个名称-值对。该对的名称是UserID,值是A9A3BECE0563982D。我第一次访问goto.com时,该网站给我分配了一个唯一的ID值并将其存储在我的机器上。
(请注意,文件中在上面显示的三个值之后可能还有其他几个值。那是浏览器用于内部维护的信息。)
Amazon.com在我的机器上存储了更多信息。当我查看亚马逊在我机器上创建的Cookie文件时,它包含以下内容:
session-id-time 954242000 amazon.com/ session-id 002-4135256-7625846 amazon.com/ x-main eKQIfwnxuF7qtmX52x6VWAXh@Ih6Uo5H amazon.com/ ubid-main 077-9263437-9645324 amazon.com/
看来亚马逊在我的机器上存储了一个主用户ID、每个会话的ID以及会话开始的时间(以及一个x-main值,它可以是任何东西)。
绝大多数网站只在你的机器上存储一条信息——一个用户ID。但如果网站愿意,它可以存储许多名称-值对。
名称-值对只是一段具名的数据。它不是程序,也不能“做”任何事情。一个网站只能检索它放置在你机器上的信息。它不能检索其他Cookie文件中的信息,也不能检索你机器上的任何其他信息。
正如你在上一节所看到的,Cookie数据只是Web网站存储在你硬盘上的名称-值对。Cookie数据就是这些。Web网站存储数据,然后稍后会收到它。一个Web网站只能收到它存储在你机器上的数据。它不能查看任何其他Cookie,也不能查看你机器上的任何其他内容。
数据以下列方式传输:
广告
服务器可以与名称-值对一起发送其他信息。其中之一是过期日期。另一个是路径(以便网站可以将不同的Cookie值与网站的不同部分关联起来)。
您可以控制此过程。您可以在浏览器中设置一个选项,以便浏览器在每次网站向您发送名称-值对时通知您。然后您可以接受或拒绝这些值。
Cookie的出现是为了解决网站实施者面临的一个大问题。从广义上讲,Cookie允许网站在你的机器上存储状态信息。这些信息让网站能够记住你的浏览器处于何种状态。ID就是一个简单的状态信息——如果你的机器上存在ID,网站就知道你以前访问过。这种状态就是“你的浏览器至少访问过该网站一次”,并且网站从那次访问中知道了你的ID。
网站以许多不同的方式使用Cookie。以下是一些最常见的例子:
广告
网站可以准确地确定有多少人实际访问该网站。事实证明,由于代理服务器、缓存、集中器等原因,网站准确计算访问者数量的唯一方法是为每个访问者设置一个带有唯一ID的Cookie。通过使用Cookie,网站可以确定有多少访问者到来,有多少是新访问者与重复访问者,以及访问者访问的频率。网站可以存储用户偏好设置,以便网站对每个访问者呈现不同的外观(通常称为个性化)。例如,如果你访问msn.com,它会提供“更改内容/布局/颜色”的功能。它还允许你输入邮政编码并获取定制的天气信息。当你输入邮政编码时,以下名称-值对会被添加到MSN的Cookie文件:
WEAT CC=NC%5FRaleigh%2DDurham®ION= www.msn.com/
电子商务网站可以实现诸如购物车和“快速结账”选项之类的功能。Cookie包含一个ID,并让网站在你将不同商品添加到购物车时跟踪你。你添加到购物车的每个商品都与你的ID值一起存储在网站的数据库中。当你结账时,网站通过从数据库中检索你所有的选择来知道你购物车里有什么。没有Cookie或类似机制,就无法实现便捷的购物机制。
在所有这些例子中,请注意,数据库能够存储的是您从网站选择的项目、您从网站查看的页面、您在在线表单中提供给网站的信息等。所有信息都存储在网站的数据库中,在大多数情况下,您的计算机上只存储一个包含您唯一ID的Cookie。
Cookie不是一个完美的状态机制,但它们确实使许多原本不可能的事情成为可能。以下是导致Cookie不完美的一些因素。
除了要求用户注册并将所有信息存储在中央数据库中之外,这些问题可能没有简单的解决方案。
广告
当您在十万个为什么注册系统中注册时,问题将通过以下方式解决:网站会记住您的Cookie值并将其与您的注册信息一起存储。如果您花时间从任何其他机器(或丢失了其Cookie文件的机器)登录,服务器将修改该机器上的Cookie文件,使其包含与您的注册信息关联的ID。因此,您可以拥有多台具有相同ID值的机器。
如果你已经读到这里,你可能会想,为什么媒体对Cookie和互联网隐私有如此强烈的反响。你在本文中已经看到,Cookie是良性的文本文件,而且它们在网络上提供了许多有用的功能。
造成对Cookie如此强烈反应的原因有两点:
广告
有关互联网Cookie及相关主题的更多信息,请查看下一页的链接。
请复制/粘贴以下文字,以便正确引用这篇十万个为什么.com文章