一、存储位置不同:Cookie存储在客户端浏览器中,Session存储在服务器。
二、安全性:Cookie存储在客户端可能会遭受攻击,Session存储在服务器相对安全。
三、生命周期:Cookie可以设置存活时间,Session一般不设置存活时间tomcat中默认的是30分钟,同时Session的生命周期和用户的浏览器相关联。
四、性能方面:Cookie每次请求都会将数据携带到服务器,可能增加网络传输的压力;Session存储在服务端,会对服务器资源有一定的占用。
五、存储大小:Cookie默认的存储大小为4kb,一个站点最多能保存20个cookie;Session没有固定大小限制。
六、使用场景:Cookie一般用于保存非敏感的数据,Session一般用于保存用户的敏感信息。
七、数据类型不同:Cookie存储的是字符串,Session可以存储对象类型。
如果客户端禁用cookie, session还能用吗?
浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端。
此时如果禁用cookie,无法存储jsessionid,所以session也就无法使用。