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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...
    iPhone阅读 15,939评论 0 13
  • HTTP cookie(也称为web cookie,网络cookie,浏览器cookie或者简称cookie)是网...
    留七七阅读 18,183评论 2 71
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 2,597评论 0 25
  • cookie也叫HTTP Cookie,最初是客户端与服务器端进行会话使用的。比如,会员登录,下次回访网站时无须登...
    lovelydong阅读 393评论 0 1
  • 今天webryan给team做了一个关于HTTP cookie的分享,从各个方面给大家介绍一下大家耳熟能详的Coo...
    秒赞不是偶然阅读 8,734评论 0 20