这是我参与8月更文挑战的第28天,活动详情查看:8月更文挑战
Cookie
的定义:
Cookie
是服务器发送到用户浏览器并保存在本地的一小块数据。
注意:
Cookie
只能由浏览器保存在本地,服务器是不能保存Cookie
的。
- 当浏览器向同一服务器再次发起请求时,会携带并发送已保存的
Cookie
给服务器。 - 默认情况下,
Cookie
只能被创建它的域读取。例如www.qq.com
设置的cookie
不能被r.qq.com
读取。
Cookie
的常见用途:
- 会话管理:用户登录状态、购物车、游戏分数或其它服务器需要记录的信息
- 个性化设置:用户偏好设置、主题与其他设置
- 浏览器行为跟踪:记录与分析用户行为
Cookie
的分类:
按照存储位置可分为内存 Cookie
和硬盘 Cookie
:
- 内存
Cookie
由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。 - 硬盘
Cookie
保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie
不会被删除,其存在时间是长期的。 - 所以,按存在时间分类,内存
Cookie
和硬盘Cookie
分别对应于非持久Cookie
和持久Cookie
。
按设置 cookie
的网站分类,可以分为第一方 cookie
和第三方 cookie
:
- 第一方
cookie
:由当前访问网站设置的cookie
。 - 第三方
cookie
:由当前访问网站以外的其他网站设置的cookie
。
Cookie
的缺陷:
Cookie
会被附加在每个HTTP
请求中,所以无形中增加了流量。- 由于在
HTTP
请求中的Cookie
是明文传递的,所以安全性成问题,除非使用 HTTPS 协议。 Cookie
存在数量和大小的限制,对于复杂的存储需求来说是不够用的。
Cookie 数量和大小的限制
根据 RFC 2109 与各大浏览器厂商的规定,为了兼容尽可能多的浏览器,在使用 Cookie
时最好遵循以下数量和大小的限制:
- 浏览器保存的
Cookie
总数小于等于300
- 每个独立域名下的
Cookie
数量小于等于20
- 每个独立域名下的
Cookie
大小小于等于4096
字节,安全起见,最好小于4093
字节