Cookie
Cookie 是存放在客服端浏览器的,单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie,但是Cookie只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
Cookie的隐私对客户端是可见的,通常以明文保存,存在信息泄露的风险,但是Cookie的有效期可以通过设置cookiede的属性,达到使cookie长期有效。
cookie保管在客户端,不占用服务器资源,而且cookie还支持跨域名访问。
HttpSession
HttpSession存放在服务器内存,他的存储容量没有上限,但是出于对服务端的性能考虑,session内不要存放过多的东西,并且设置session删除机制,相比session,httpsession能够储存任何类型的数据。
而且httpsession储存在服务器上,不存在重要信息透露的风险。
因为cookies的依赖名为JSESSIONID的cookies,而cookies JSESSIONID的过期时间默认为-1,所以关闭窗口该session就会失效,因而session不能达到长期有效的效果。
httpsession没有session的服务器压力大,因为是保管在服务器端的,所以每个用户都会产生一个session,消耗大量内存httpSession,不支持跨域名访问。