一、cookie虽然在数据在客户端持久存储提供了方便,但是分担了服务器数据传输的负担,还是存在很大的局限性的。
局限性:
(1)在特定的域名下最多存储20个cookie。
浏览器版本 存储个数
ie6和以前版本 | 20 |
ie7和以后版本 | 50 |
Firefox | 50 |
chrome和safari | 没有硬性限制 |
IE和Opera会清理近期最少使用的cookie,IE提供了一种可持久化存储用户数据,称作为userData,从IE5.0就开始支持。每个数据最多128K,每个域名下最多1M。这个持久化数据放在缓存中,如果缓存没有清理,那么会一直存在firefox会随机清理cookie。
(2)cookie最大大约为4096字节,为了兼容性,一般不超过4096字节。
二、cookie 的优缺点
优点:极高的扩展性和可用性
1、通过良好的编程,控制保存在cookie和session中的对象的大小。
2、通过加密和传输技术(ssl),减少cookie被破解的可能。
3、只在cookie中存放不敏感数据,即使被盗取也不会造成太大损失。
4、控制cookie的存放有效时间,偷盗者有可能拿到的是一个过期的数据。
缺点:
1、cookie的长度和数量的限制,同一个domain下只能存放20条,每条4kB,否则会被截掉。
2、安全性问题,如果cookie被截取,截取者就能获取session的信息,即使被加密也于事无补,因为截取者只需要原样发出cookie就能达到目的。
3、有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。