1.存储位置不同
Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中
2.存储容量不同
通常情况
单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。
对于Session并没有上限,但出于对服务器端的性能考虑,Session内不要存放过多的东西,并设置session删除机制
3.存取方式不同
Cookie中只能保管ASCll字符串,需要通过编码的方式存取Unicode字符或者二进制数据。运用Cookie难以实现存储略微复杂的信息
4.隐私策略不同
Cookie对客服端是可见的,别有用心的人可以分析放在本地的Cookie上面并进行Cookie欺骗,所以它是不安全的
5.有效期不同
开发可以通过设置Cookie的属性,达到Cookie长期有效的效果
由于Session依赖于名为JSESSIONID的cookie,而Cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该Session就会失效,因而Session不能达到长期有效的效果,就算不依赖Cookie,运用URL地址重写也不能完成,因为假如设置Session的超过时间过长,服务器累计的Session就会越多,越容易导致内存溢出
6.服务器压力不同
Session是保管在服务端的,每个用户都会产生一个Session,假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存
Cookie是保管在客户端,不占用服务器资源,对于并发用户十分多的网站,cookie是很好的选择
7.跨域支持上的不同
Cookie 支持跨域名访问,例如,将 domain 属性设置为“.biaodianfu.com”,则以“.biaodianfu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中,例如,Google、Baidu、Sina等。
Session则不会支持跨域名访问。Session仅在它所在的域名内有效。