1.存储位置不同
cookie的数据信息存放在客户端浏览器上。
session的数据信息存放在服务器上。
2.存储容量不同
单个cookie保存的数据<=4KB,⼀个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3.存储⽅式不同
cookie中只能保管ASCII字符串,并需要通过编码⽅式存储为Unicode字符或者⼆进制数据。
session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4.隐私策略不同
cookie对客户端是可见的,别有⽤⼼的⼈可以分析存放在本地的cookie并进⾏cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5.有效期上不同
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
session依赖于名为JSESSIONID的cookie,⽽cookie JSESSIONID的过期时间默认为-1,只需关闭窗⼝该session就会失效,因⽽
session不能达到长期有效的效果。
6.服务器的压⼒不同
cookie保管在客户端,不占⽤服务器资源。对于并发⽤户⼗分多的⽹站,cookie是很好的选择。
session是保管在服务器端的,每个⽤户都会产⽣⼀个session。假如并发访问的⽤户⼗分多,会产⽣⼗分多的session,耗费⼤量的内存。
7.浏览器⽀持不同
假如客户端浏览器不⽀持cookie:
cookie是需要客户端浏览器⽀持的,假如客户端禁⽤了cookie,或者不⽀持cookie,则会话跟踪会失效。关于WAP上的应⽤,常规的
cookie就派不上⽤场了。
运⽤session需要使⽤URL地址重写的⽅式。⼀切⽤到session程序的URL都要进⾏URL地址重写,否则session会话跟踪还会失效。
假如客户端⽀持cookie:
cookie既能够设为本浏览器窗⼝以及⼦窗⼝内有效,也能够设为⼀切窗⼝内有效。
session只能在本窗⼝以及⼦窗⼝内有效。
8.跨域⽀持不同
cookie⽀持跨域名访问。
session不⽀持跨域名访问。
12-28
271
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-22
2万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)