你好,是我琉忆。
今天我们讲一讲什么是Cookie,怎么理解Cookie。
在我们Web开发中,例如要想长久的存储一个用户的信息,到底需要使用什么样的一个方式进行储存?我们一起来看看。
1、Cookie对象
我们先从Cookie开始介绍,在ASP.NET开发中,提供了Cookie对象。该对象已经封装好了所有对Cookie相关的操作,底层的封装实现我们不需要关心,需要重点掌握该对象的操作和使用。
2、什么是Cookie?
Cookie的翻译解释有以下几种:曲奇;精明强干的人;坚强的人;网络饼干(网络或互联网使用者发给中央服务器信息的计算机文件)。很明显对该英文的最好解释是“网络饼干”。它是一个保存在客户机中的简单的文本文件,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
由于Cookie具有可以保存在客户机上的神奇特性,因此它可以帮助我们实现记录用户个人信息的功能,而这一切都不必使用复杂的CGI等程序完成。举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。如果使用浏览器访问Web,会看到所有保存在硬盘上的Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的Web站点的信息。在这里的每个Cookie文件都是一个简单而又普通的文本文件。透过文件名,就可以看到是哪个Web站点在机器上放置了Cookie,当然站点信息在文件里也有保存。
Cookie主要由以下内容组成:
Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中:
(1)Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。
(2)Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。
(3)Path属性:定义了Web站点上可以访问该Cookie的目录。
(4)Domain属性:指定了可以访问该Cookie的Web站点或域。Cookie机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的Cookie。当需要实现单点登录方案时,Cookie的上述特性非常有用,然而也增加了Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在Domain属性中设置.org、.