因特网上Cookies是如何工作的

** 因特网上 ** ** Cookies ** ** 是如何工作的 ** ** **

因特网上的 Cookies 是令人难以置信的简单。 但它具有自己独特的生命力 , Cookies 是在始于 2000 年 2 月的关于因特网隐私保护而引发的激烈争论后开始引起媒体的广泛关注的。

在另一方面, Cookies 提供了是的 WEB 导航变得容易的能力,几乎每个主要网站的设计者都会是用 Cookies ,因为 Cookies 能够提供容易的收集正确的站点访问者的信息的方法。

我们将看一下 Cookies 的基本技术细节和它的一些特点。

** Cookies ** ** 基础 ** ** **


在 2000 年 4 月,我在一份很受尊敬很有影响的报纸上看到一篇关于因特网隐私保护有深度的文章,在这篇文章里包含了对 Cookies 的定义,如下:

_ Cookies _ _ 是 _ _ web _ _ 站点放置到你的硬盘上的程序。它们驻留在你的计算机上收集关于你在因特网上所做的一切事情的信息,并且 _ _ web _ _ 站点可以在任何时候读取到 _ _ Cookies _ _ 收集到的所有信息。 _ _ _

在新闻中这样定义是公平的,问题是,这个定义中没有一个是正确的, Cookies 不是程序,它不能象程序一样能做很多事,因此它们自己不能收集任何信息,也不能收集关你你的机器的任何信息。

这里有一个关于 Cookies 的比较恰当的定义:

_ 一个 _ _ Cookies _ _ 是 _ _ web _ _ 服务器存放在用户硬盘的一段文本, _ _ Cookies _ _ 允许一个 _ _ wen _ _ 站点在用户的机器存放一些文本的信息,并可以在以后重新获取它。这个基于文本的信息存储着一些“键-值”对。 _ _ _

举个例子,一个 web 站点要为每一个来访者建立一个唯一的 ID 号码,并且将这个号码存储到每个来访者的机器的 Cookies 中。

如果你用微软的 IE 浏览一个 web ,你能够在你的硬盘看到你机器上的所有的 Cookies ,通常它们会驻留在目录 c:\windows\cookies ( win98 ),或者 C:\Documents and Settings\user name\Cookies(win2000 , win xp) 下面,当我看我的机器的这个目录的时候,我发现有 165 个文件。每个都是一个包含了“键-值”对的文本文件,每个站点都有一个 Cookies 文件。

你能够看到这个目录中的每一个文件都是一个简单的,普通的文本文件,你能够通过文件名看到是哪个 web 站点在你的机器放置了 Cookies (这个信息也保存在了文件内容中),你可以打开每个文件查看其内容。

例如,我已经访问过了站点 goto.com ,这个站点就会在我的机器上放置一个 Cookie ,这个 Cookie 文件的名字叫 goto.com ,包含下面的信息:

_ UserID A9A3BECE0563982D www.goto.com/ _

_ _

站点 goto.com 已经在我的机器上放置了一个单个的“键-值”对,键的名字是 UserID ,键的值是 A9A3BECE0563982D ,我第一次访问 goto.com 站点,站点分配了一个唯一的 ID 给我并把这个 ID 存放到了我的机器。

大多数的站点仅仅只在你的机器存放一个用户 ID 的 Cookie ,但这不是限制,一个站点可以在你的机器存放许多的“键-值”对,只要它喜欢。

Cookies 文件只包含这些简单的“键-值”对的文本,、它不是程序,因此它不能“做”任何事情,一个 web 站点只能重新取得它自己放置到你硬盘的信息,它不能从其它的 Cookies 文件中取得信息,也不能看到你的机器的任何别的东西。

** Cookies ** ** 数据如何移动 ** ** **

正如你在以上章节中看到的, Cookie 数据是简单的 web 站点放置在你的硬盘上的“键-值”对的文本,所有的 Cookies 文件都是如此。 Web 站点保存这些数据,然后又可以取回来,一个 web 站点只能取回它自己存放在你机器的数据,不能看到其它的 Cookie ,也不能看到你机器上的其它任何东西。

Cookie 数据按照下面的方式移动:

n 如果你在你的浏览器中输入了 web 的 URL ,浏览器会象这个 URL 的 web 站点发送请求,比如,你在浏览器中输入一下 URL : http://www.verizon.com ,浏览器会将请求发送到 Verizon 的 web 服务器,请求它的首页。

n 当浏览器发送请求时,它会查看你机器上跟域名 www.verizon.com 有关的 Cookie 文件,如果存在同 www.verizon.com 有关的 Cookie ,浏览器就会把相关的 Cookie “键-值”对数据跟请求一起发送到服务器,如果不存在同 www.verizon.com 有关的 Cookie ,则浏览器不发送 Cookie 到服务器。

n Verizon 的 web 服务器收到 Cookies 数据和一个页面的 Http 请求,如果收到了 Cookie “键-值”对, Verizon 的 web 服务器将能够使用它们。

n 如果没有收到 Cookie “键-值”对, Verizon 的 web 服务器就能知道你以前没有访问过这个站点,服务器建立一个新的用户 ID ,并在把你所请求的页面发回到你的浏览器时,把用户 ID “键-值”对发送到你的机器,你的硬盘就会驻留了对应这个站点的“键-值”对 Cookie 。

n web 服务器可以在你访问站点时,随时的更改“键-值”对或者加入一个新的“键-值”对。

同“键-值”对发送到客户端的还有同这个“键-值”对相关的一些其它信息,其中之一就是 Cookie 有效期,另一个就是路径(为了在同一个站点的不通部分关联不同的 Cookie )。

你能够控制这个过程,你可以在你的浏览器中设置当 web 站点向你的机器发送 Cookie 时你是接受还是拒绝。

** Web ** ** 站点怎么使用 ** ** Cookies **

Cookies 得到发展是因为它解决了谁在访问某个站点这个大问题,广义的理解, Cookies 允许一个站点在你的机器上保存状态信息,这个信息让 web 站点记住你的浏览器在什么状态,一个 userID 这个简单的“键-值”对可以让 web 站点知道你以前访问过这个站点,状态就是“你的浏览器至少访问过这个站点一次”,并且,站点从这次访问可以得知你的 user ID 。

Web 站点通过许多不通的方法来使用 Cookies ,下面是一些例子:

n 站点能够精确的知道有多少访问者在实际的访问站点,它能排除哪些因为代理服务器,缓冲器,集中器等等带来的干扰,正确统计站点访问数的唯一方法是为每一个来访者设置一个唯一的 ID ,并存在 Cookie 中,用 Cookie ,站点能够:

u 决定有多少访问者到达。

u 决定多少新的访客,多少是再次造访者。

u 确定一个访问者访问的频度

web 站点要做到这些是通过使用一个数据库,一个来访者第一次到来,站点在数据库中建立一个新的 user ID ,并且将这个 user ID 做为 Cookie 发送到客户端,这个用户下次再次访问这个站点,站点将会在数据库中同这个用户关联的 user ID 记录中增加访问次数,因此也知道了此用户多久访问一次。

n 为了查看每个用户的不同之处,站点可以存储用户的参数,比如,一些站点提供改变内容、布局、颜色设置的能力,它或者能够根据你的邮政编码提供定制的天气信息。

大多数的站点似乎都象这样的在站点数据库中保存用户参数,在 Cookie 中除了存储一个 user ID 别的信息都没有,但是要在“键-值”对中存储一个实际的值还有另外一个方法:

n 电子商务站点能够实现类似购物蓝和快速付款这些功能,用包含 user ID 的 Cookie 来跟踪客户并将不同的商品放入你的购物蓝中,你放入购物蓝的每一个商品都将存放在数据库中同你的 user ID 相关的记录中,当你付款时,站点知道你都采购了哪些商品。若是没有 Cookie 或者类似的技术,将不可能实现上述的功能。

在所有的这些例子中,注意,数据库被用来存储你在站点中选择的商品,你浏览过的页面,你在表单中提供的信息等等,所有的信息都被保存在站点的数据库中,只有你的 user ID 是存储在客户端的 Cookie 中用以辨识用户的身份。

** Cookies ** ** 的问题 ** ** **


Cookies 不是一种理想的状态机,但是它的确能够做到许多别的方式不能做到的事,下面是 Cookies 的一些缺点:

n 人们经常共同使用一台机器 ―― 在公共场合使用的任何机器,和在办公室使用的或在家中使用的许多机器都是多人共享的机器。让我们来看你正在使用一台多人使用的机器(例如,在图书馆的机器)在一个网上商店购买商品,商店的网站将会在这个机器上留下你的一些设置信息,其后又有别人用这台机器到这个网上商店购买商品,这个网站将会提供的是你的一些设置。

n Cookies 被删除 ―― 如果你的浏览器出来问题而寻求技术支持的时候,技术支持者要你做的第一件事就是要求你首先删除你机器上的所有 internet 临时文件,当你这样做后,你将丢掉你的所有的 Cookies 文件。当你再次访问某个站点时,站点将会想你是个新的用户并给你一个新的 user ID ,你以前在这个站点设置的一些个性设置也将不在存在。

n 使用多个机器 ―― 人们在一天之内经常使用不止一台机器,比如,在办公室使用一台机器,在家又使用一台机器,在路上可能使用到笔记本电脑。这样在三台机器上将会用三个不通的 Cookie ,同一个人在三台机器上将会被做为三个用户分别对待。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus