1、存储位置
cookie存放在客户端浏览器
session存放在服务器
2、存储容量
单个cookie保存的数据<=4KB,
一个站点最多保存20个Cookie。
对于session来说并没有上限,
但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式
cookie中只能保管ASCII字符串,
并需要通过编码方式存储为Unicode字符或者二进制数据。
session中能够存储任何类型的数据,
4、隐私策略
cookie对客户端是可见的,
别人可以分析存放在本地的cookie并进行cookie欺骗,
所以它是不安全的。
session存储在服务器上,
对客户端是透明的,不存在敏感信息泄漏的风险。
5、有效期
可以通过 cookie 的 expires 参数指定过期时间
session 依赖于名为 jsessionid 的 cookie,
而 jsessionid 的过期时间默认为-1,
只要关闭窗口该session就会失效,
因而session不能达到长期有效的效果。
jsessionid 是一个 Cookie,
可以通过在URL后面加上“;jsessionid=xxx”
来传递“session id”
6、服务器压力
cookie保管在客户端,
不占用服务器资源。
对于并发用户十分多的网站,cookie是很好的选择。
session是保管在服务器端的,
每个用户都会产生一个session。
假如并发访问的用户十分多,会产生十分多的session,
耗费大量的内存。
7、浏览器支持
假如客户端浏览器不支持cookie:
cookie是需要客户端浏览器支持的,
假如客户端禁用了 cookie,或者不支持 cookie,
则会话跟踪会失效。
关于WAP上的应用,
cookie 一般情况下存放在用户的手机上,
若用户手机不支持 cookie 功能,
则 WAP 网关将协助存储用户 cookie 信息;
运用 session 需要使用URL地址重写的方式。
一切用到session程序的URL都要进行URL地址重写,
否则session会话跟踪会失效。
假如客户端支持cookie:
cookie既能够设为本浏览器窗口以及子窗口内有效,
也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8. 跨域支持上不同
cookie支持跨域名访问。
session不支持跨域名访问。
