首先需要理解一下幾點:
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就失效了