1. 定义
Cookie中文名称为“小型文本文件”, 指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)
2. 分类
Cookie保存在客户端中,按照保存位置分为内存cookie和硬盘cookie。
- 内存cookie保存在内存中,由浏览器维护,浏览器关闭后就消失了。
- 硬盘cookie存储在硬盘中,有一个过期时间(expiration time),除非用户手动删除或者到了过期时间,否则不会消失。
Cookie按照存在时间,可分为非持久Cookie和持久Cookie。
3. 用途
HTTP协议是无状态的,即服务器不知道用户上一次做了什么,阻碍了服务器与客户端之间的交互。所以使用cookie来协助交互,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。
例如当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。
4. 缺陷
- Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
- 由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非用HTTPS。
- Cookie的大小限制在4KB左右,对于复杂的存储需求来说是不够用的。
5. 总结
- Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。
- 浏览器需要保存这段数据,不得轻易删除。
- 此后每次浏览器访问该服务器,都必须带上这段数据。
参考链接
https://zhuanlan.zhihu.com/p/22396872?refer=study-fe
https://zh.wikipedia.org/wiki/Cookie