首先需要理解一下几点:
1、Http是无状态的,即对于每一次请求都是一个全新的请求,服务器不保存上一次请求的信息
2、Session是保存在服务端的,为什么后续请求会读取到session?因为请求会包含一个sessionId,该值存储在cookie中,服务器通过这个sessionId找到对应的session
3、cookie是有过期时间的,规则如下:
Cookie的Max-Age决定了Cookie的有效期,单位为秒0:Cookie立即作废(如果原先浏览器已经保存了该Cookie,那么可以通过设置Max-Age为0使其失效)<0:默认,表示只在浏览器内存中存活,一旦浏览器关闭则Cookie销毁,浏览器的max-age默认为-1>0: 将Cookie持久化到硬盘上,有效期由Max-Age决定
综上所述:
1、sessionId是一个cookie,max-age默认为-1,即关闭浏览器后sessionId就会清空
2、sessionId(cookie)清空后,自然就无法找到对应的session,所以session就失效了