这是我参与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字节