共同点:cookie和session都是会话技术
1.数据存放: cookie服务器获得用户请求之后,把请求的资源保存好,然后在给服务器响应的时候,将数据存放在客户的浏览器上,session是web服务器针对用户的请求创建的一个容器,当客户端请求的时候,服务器会读取请求中的session信息,如果检索不到对应的sessionID,就会创建一个session,并分配一个sessionID,将数据存放在服务器上,会把sessionID存储到cookie中响应给浏览器,如果客户端不支持cookie的话,也可以将URL地址进行重写,将sessionid放在url地址中方便客户端进行解析
2.安全性:cookie是存放在浏览器端的,容易被破解,session是存放在服务器端,所有session安全性更高
3.性能方面:session是存放在服务器端的,当访问量较大时,会比较占用服务器资源,使性能相应降低
4.存放数据大小方面,一般一个cookie存放大小的话为4k,一个浏览器一般能存放50个cookie以内,而session是存储在服务器端的,大小没有太大要求,但太大也会影响服务器的性能
5.生命周期:cookie分为会话级别和持久性的,如果不设置cookie的过期时间的话,关闭浏览器cookie就会消失,会话cookie一般保存在内存而不在硬盘,持久级cookie因为设置了过期时间一般存放在硬盘中,浏览器关闭后再次打开,只要持久级cookie没过期,依然可以进行访问
session生命周期详解
开始:第一访问服务器,服务器创建session对象,范围的开始
结束:1.关闭浏览器,会话结束.
//--
为什么说关闭浏览器会话就算结束?
因为保存sessionId的cookie的有效时间是,浏览器关闭cookie删除.
cookie中的sessionID丢失.sessionID一旦丢失,那么就再也找不到Session对象了.
2.Session的过期时间到了,Session销毁
3.调用invalidate方法,Session立刻销毁
如果永远不关闭浏览器,
Session的空闲时间如果超过30(默认值)分钟,仍然会被删除.
一般情况下,像一些登录信息之类的数据会存放在session中,其他的一些数据会存放在cookie中