天天看點

Session會在浏覽器關閉後消失嗎?

通常情況下,當我們關閉浏覽器再重新打開後,我們就需要再次進行登陸(如果沒有進行下次自動登入之類的設定)。在Jav中(Session是通用的,這裡以Java為例)有一種叫做Session機制(會話機制)來記錄使用者的登入資訊。浏覽器關閉之後,Session會被清除嗎?

Session是一種伺服器端的對象,儲存在伺服器中。 每個Session 有一個唯一的Session id。 Session的逾時也是由伺服器來控制。我們一般都會把Session和Cookie放在一起來說,它們具體的差別和聯系這裡我就不多說了,可以去查閱相關資料。Cookie分為記憶體中Cookie(也可以說是程序中Cookie)和硬碟中Cookie。大部分的Session機制都使用程序中Cookie來儲存Session id的,關閉浏覽器後這個程序也就自動消失了,程序中的Cookie自然就消失了,那麼Session id也跟着消失了,再次連接配接到伺服器時也就無法找到原來的Session了。

其實伺服器是不會知道浏覽器關閉了沒有(當然,你可以在關閉的時候去通知伺服器,但一般都不會這樣做),是以關閉浏覽器時伺服器是不會删除Session的,也正是這個原因伺服器才會設定一個Session失效時間的,不然伺服器早晚會被撐爆的。等距離上一次使用該Session的時間達到設定的失效時間時,伺服器就會認為用戶端已停止活動,便會将相應的Session删除。

當然,我們可以在登陸時點選下次自動登入,比如說CSDN的“記住我一周”,或者我們的購物車資訊可以在切換不同浏覽器時依然可用。這就要用到我們上文提到的另一種Cookie了——硬碟中Cookie,這時Session id将長期儲存在硬碟上的Cookie中,直到失效為止。

總結一下,其實每次浏覽器通路伺服器都會帶有sessionID ,通常sessionID是存在記憶體中的cookie,關閉浏覽器就沒有了,是以再次通路伺服器需要再次登陸,伺服器中的session沒有消失,但是超過一定的時間就會清理掉,

繼續閱讀