会话Cookie
- 指没有设置setMaxAge的Cookie。此类Cookie在浏览器关闭的时候就消亡了
持久Cookie
- 通过cookie.setMaxAge()设置了自己的生命周期,直到过了时间才会消亡。
Session
- Session 是存放在服务器端的,类似于Session结构来存放用户数据。
- 当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。
- 当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。
- 但是当用户在会话的过程中关闭浏览器结束进程(会话Cookie消亡),则这个sessionid将消失,如果用户又打开浏览器想继续这次会话的时候,就会因 为发送的请求中没有这个sessionid而使服务器无法辨别该把那个session信息给他,注意(这个时候服务器端的sessionid和 sessionid所指向的session都还存在,只是没有正确的sessionid和它匹配而占用服务器内存,只有session过期或服务器重启才 释放内存).
- 所以说关闭浏览器session就被清除只是我们所看到的表面现象(实际上是新建了一个session对象),通常情况下,服务器并不会马上清除session对象,但这个根据服务端的设定而不同。
Session结束进程
- 关闭tomcat
- reload web应用
- session时间到
- invalidate session