2.3 Cookies
Cookies也可以称为Cookie,指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。
一个Cookies就是存储在用户主机浏览器中的文本文件。Cookies是纯文本形式,它们不包含任何可执行代码。服务器告诉浏览器将这些信息存储,并且每个请求中都将该信息返回到服务器。服务器之后可以利用这些信息来标识用户。多数需要登录的网站通常会在用户登录后将用户信息写入Cookies,只要这个Cookies存在并且合法,就可以自由地浏览这个网站的所有站点。Cookies只是包含数据,就其本身而言并不有害。
服务器可以利用Cookies包含的信息判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站和保留用户信息以便简化登录手续。
一般Cookies所具有的属性如下。
● Domain:域,表示当前Cookies属于哪个域或子域下面。
● Path:表示Cookies的所属路径。
● Expire Time/Max-Age:表示Cookies的有效期。
● Secure:表示该Cookies只能用HTTPS传输。
● Httponly:表示此Cookies必须用HTTP或HTTPS传输。
● HasKeys:通过该值指示Cookie是否含有子键,返回一个bool值。
● Name:表示Cookie的名称。
● Value:单个Cookie的值。
● Values:单个Cookie所包含的键值对的集合。
Cookies的优点如下。
(1)极高的扩展性和可用性。
(2)通过良好地编程控制保存在Cookie中的Session对象的大小。
(3)通过加密和安全传输技术(SSL)减少Cookie被破解的可能性。
(4)只在Cookie中存放不敏感数据,即使被盗也不会有重大损失。
(5)可控制Cookie的生命期,使之不会永远有效。
Cookies的缺点如下。
(1)Cookie数量和长度的限制。每个domain最多只能有20条Cookie,每个Cookie长度不能超过4KB,否则会被截掉。
(2)安全性问题。如果Cookie被拦截,就有可能被取得所有的Session信息。
(3)某些状态不可保存在客户端。例如,为了防止重复提交表单,需要在服务器端保存一个计数器。如果把这个计数器保存在客户端,那么它起不到任何作用。