http协议将超文本标记语言(html)文档从web服务器传到客户端的浏览器,由于http协议是无状态的,一旦它的数据交换完毕,客户端和服务器的连接就会关闭,而session和cookie都是用来跟踪服务器和客户端之间的会话的。
cookie和session的特点整理如下:
- cookie的数据存放在客户端(浏览器)内,session的数据存放在服务器端内
- cookie不够安全,别人可以分析本地cookie并对cookie进行欺骗,session更安全。
- session会在一定时间内保存在服务器上,访问增多时会占用服务器性能,cookie可以减轻服务器性能。
- cookie保存数据不能超过4k,很多浏览器限制最多20个cookie。
- cookie分为会话cookie和持久cookie。
- 持久cookie:设置了过期时间的cookie,浏览器会把该cookie保存在硬盘上,即使浏览器关闭后再打开,cookie仍然有效直到过了过期时间;
- 会话cookie:没有设置过期时间的cookie,在关闭浏览器窗口后,cookie则消失,cookie的生命期为浏览器会话期间。这种cookie保存在内存里。
- cookie不可跨域名。即A域名的cookie与B域名的cookie不共用。
- 每个用户访问服务器都会建立一个session,服务器通过sessionid识别唯一用户,一般sessionId被保存在cookie中。
- session可以保存在集群、数据库、文件中。
以上总结参考https://www.zhihu.com/question/19786827/answer/84540780、https://www.cnblogs.com/8023-CHD/p/11067141.html