page contents

谈谈 cookie的特点?

轩辕小不懂 发布于 2021-07-17 11:37
阅读 665
收藏 0
分类:WEB前端开发
1312
Nen
Nen
- 程序员

cookie虽然为持久保存客户端数据提供了方便,分担了服务器存储的负担,但是有以下局限性。

(1)每个特定的域名下最多生成20个 cookie。

(2)IE6或更低版本最多有20个 cookie。

(3)IE7和之后的版本最多可以有50个 cookie。

(4) Firefox最多可以有50个 cookie。

(5) Chrome和 Safari没有做硬性限制。


IE和 Opera会清理近期最少使用的 cookie, Firefox会随机清理 cookie。

cookie最大为4096字节,为了兼容性,一般不能超过4095字节。

IE提供了一种存储方式,可以让用户数据持久化,叫作 userdata,从IE5.0就开始支持此功能。每块数据最多128KB,每个域名下最多1MB。这个持久化数据放在缓存中,如果缓存没有被清理,就会一直存在。

优点如下:

(1)通过良好的编程,控制保存在 cookie中的 session对象的大小。

(2)通过加密和安全传输技术(SSL),降低 cookie被破解的可能性。

(3)只在 cookie中存放不敏感数据,即使被盗也不会有重大损失。

(4)控制 cookie的生命周期,使之不会永远有效。数据偷盗者很可能得到一个过期的 cookie。

缺点如下:

(1)“ cookie”的数量和长度有限制。每个 domain最多只能有20条 cookie,每个cookie的长度不能超过4KB,否则会被截掉。

(2)安全性问题。如果 cookie被别人拦截了,就可以取得所有的 session信息。即使加密也于事无补,因为拦截者并不需要知道 cookie的意义,他只要原样转发 cookie就可以达到目的。

(3)有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果把这个计数器保存在客户端,那么它起不到任何作用

31、cookie和 session的区别是什么?

区别如下:

(1) cookie数据存放在客户的浏览器上, session数据存放在服务器上。

(2) cookie不是很安全,别人可以分析存放在本地的 cookie并进行 cookie欺骗。考虑到安全问题应当使用 session。

(3) session会在一定时间内保存在服务器上。当访问增多时,会占用较多服务器的资源。为了减轻服务器的负担,应当使用 cookie。

(4)单个 cookie保存的数据不能超过4KB,很多浏览器都限制一个站点最多保存20个 cookie。

所以个人建议可以将登录信息等重要信息存放在 session中,其他信息(如果需要保留)可以存放在 cookie中。

请先 登录 后评论