数据存储之cookie(一)

数据存储之cookie的实现及限制

之前我以为cookie就是一些存储在浏览器中的一些键值对而已,其实不然,它有很多的限制要求,也没有我想象的那么简单。

cookie的实现

它的全称是叫HTTP Cookie,从http我们可以得知,cookie是和http请求有关的。实际上,cookie是这样实现的,在web server下发给浏览器的任意的http请求中发送Set-Cookie HTTP头作为响应的一部分,在后续的http 请求中,浏览器会将cookie带回给Web Server。例如,web server的响应头可能如下:

HTTP/1.1 200 OK
Content-type:text/html
Set-Cookie:name=value
Other-header:other-header-value(这里省去其他字段)

这样就设置了一个以name为名称、value为值的一个cookie,浏览器存储这样的会话信息后,通过为每个请求添加Cookie HTTP头将信息发送回web server,如下所示:

GET /index.html HTTP/1.1
Cookie:name=value
Other-header:other-header-value(这里省去其他字段)

同时在浏览器允许脚本执行的情况下,Cookie是可以被JavaScript等脚本设置的。在JavaScript里,可以通过document.cookie对象实现。例如:
document.cookie = “key=newvalue”;

cookie的限制

IE6.0 IE7.0/8.0/9.0+ Opera FF Safari Chrome
cookie个数 每个域为20个 每个域为50个 每个域为30个 每个域为50个 没有个数限制 每个域为53个
cookie大小 4095个字节 4095个字节 4096个字节 4097个字节 4097个字节 4097个字节

cookie在性质上是绑定在特定域名下的。这就确保了存储在cookie中的信息只能让批准的接受者访问,无法被其他的域访问。由于cookie是存在客户端计算机上面的,为了限制确保 cookie不会被恶意使用,同时不占据太多的内存空间,每个域的cookie总数有限的,浏览器之间各有不同。

总之,当我们在进行页面cookie操作的时候,应该尽量保证cookie个数小于20个,总大小 小于4KB

你可能感兴趣的:(数据存储之cookie(一))