cookie 也叫 HTTP Cookie, 最初是客户端与服务器端进行会话使用的。 比如, 会员登录 ,下次回访网站时无须登录了;或者是购物车,购买的商品没有及时付款,过两天发现购物车里还有之前的商品列表。
HTTP Cookie 要求服务器对任意 HTTP 请求发送 Set-Cookie,因此,Cookie 的处理原则上需要在服务器环境下进行。当然,现在大部分浏览器在客户端也能实现 Cookie 的生成和获取
Cookie的局限性:
cookie 虽然在持久保存客户端用户数据提供了方便,分担了服务器存储的负担。但是有很多局限性的。
第一:每个特定的域名下最多生成 20 个 cookie(根据不同的浏览器有所区别) 。
为了更好的兼容性,所以按照最低的要求来,也就是最多不得超过 20 个 cookie。当超过指定的 cookie 时,浏览器会清理掉早期的 cookie。IE 和 Opera 会清理近期最少使用的 cookie,Firefox 会随机清理 cookie。
1.IE6 或更低版本最多 20 个 cookie
2.IE7 和之后的版本最多可以 50 个 cookie。 IE7 最初也只能 20 个, 之后因被升级不定后增加了。
3.Firefox 最多 50 个 cookie
4.Opera 最多 30 个 cookie
5.Safari 和 Chrome 没有做硬性限制。
第二:cookie 的最大大约为 4096 字节(4k),为了更好的兼容性,一般不能超过 4095 字节即可。
第三:cookie 存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie 的。比如银行卡号,用户密码等
cookie 的组成
cookie 由名/值对形式的文本组成:name=value。
完整格式为:
Document.cookie=name=value; [expires=date]; [path=path]
中括号是可选,name=value 是必选。
expires=date 失效时间,如果没有声明,则为浏览器关闭后即失效。声明了失效时间 ,那么时间到期后方能失效。
var date = new Date();
date.setDate(date.getDate() + 7);
document.cookie = “user= ” + encodeURIComponent(‘XX’) +”;expires=” + date;