JavaScript之cookie

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;

    原文作者:码小Q
    原文地址: https://www.jianshu.com/p/1b2e6f9ec093
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞