简介
Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用
户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下
次再访问您的站点时,应用程序就可以检索以前保存的信息。
本文概要介绍 Cookie 在 ASP.NET 应用程序中的应用,为您展示在 ASP.NET 中
应用 Cookie 的技术细节,例如编写 Cookie、然后再读取它们。同时,还将为您介绍
Cookie 的各种特性和各种特殊情况,以及 ASP.NET 对 Cookie 的支持。
什么是 Cookie?
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间
传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。
假设在用户请求访问您的网站 www.contoso.com 上的某个页面时,您的应用程序
发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie。用户的浏览器
在获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。
以后,如果该用户再次访问您站点上的页面,当该用户输入 URL
www.contoso.com 时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果
该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点,您的应用程序就能确
定该用户上一次访问站点的日期和时间。您可以根据这些信息向用户发送一条消息,也
可以检查过期时间或执行其他有用的功能。
Cookie 是与 Web 站点而不是与具体页面关联的,所以无论用户请求浏览站点中
的哪个页面,浏览器和服务器都将交换 www.contoso.com 的 Cookie 信息。用户访问其
他站点时,每个站点都可能会向用户浏览器发送一个 Cookie,而浏览器会将所有这些
Cookie 分别保存。
以上就是 Cookie 的基本工作原理。那么,Cookie 有哪些用途呢?最根本的用途
是 Cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保
持 Web 应用程序连续性(即执行“状态管理”)的方法。浏览器和 Web 服务器除了在
短暂的实际信息交换阶段以外总是断开的,而用户向 Web 服务器发送的每个请求都是单
独处理的,与其他所有请求无关。然而在大多数情况下,都有必要让 Web 服务器在您请
求某个页面时对您进行识别。例如,购物站点上的 Web 服务器跟踪每个购物者,以便站
点能够管理购物车和其他的用户相关信息。因此 Cookie 的作用就类似于名片,它提供
了相关的标识信息,可以帮助应用程序确定如何继续执行。
使用 Cookie 能够达到多种目的,所有这些目的都是为了使 Web 站点记住您。例
如,一个实施民意测验的站点可以简单地利用 Cookie 作为布尔值,表示您的浏览器是
否已经参与了投票,从而避免您重复投票; 而那些要求用户登录的站点则可以通过
Cookie 来确定您是否已经登录过,这样您就不必每次都输入凭据。
有关 Cookie 的更多背景信息,建议您阅读 Verizon Web 站点中的“How
Internet Cookies Work”一文,地址为
http://www22.verizon.com/about/community/learningcenter/articles/displayartic
le1/0,4065,1022z1,00.html(英文)。其作者详细解释了什么是 Cookie 以及
Cookie 是如何在浏览器和服务器之间交换信息的,他还全面总结了 Cookie 涉及的隐私
问题。
顺便问一下,您是否想知道它们为什么被称作“Cookie”?Jargon File(又称为
“The New Hacker's Dictionary”)版本 4.3.3 对这一术语的词源给出了准确的定义
和合理的解释。您可以在 http://www.catb.org/~esr/jargon/jargon.html#cookie(英
文)找到相关的条目。
在此后的内容中,本文将假设您已经知道什么是 Cookie,并且假设您已经清楚为
什么要在 ASP.NET 应用程序中使用 Cookie。