Session的工作原理

2021-08-13 23:53:07 字數 842 閱讀 6250

首先,我們需要知道session是什麼。有比較專業的人將session稱之為會話控制。說實在的,如果這麼說的話,我也不清楚session到底算是什麼。

其實session是乙個存在伺服器上的類似於乙個雜湊**的檔案。裡面存有我們需要的資訊,在我們需要用的時候可以從裡面取出來。類似於乙個大號的map吧,裡面的鍵儲存的是使用者的sessionid,使用者向伺服器傳送請求的時候會帶上這個sessionid。這時就可以從中取出對應的值了。

說起session的作用,簡單的舉個例子:我們在登入某些**的時候,輸入了使用者名稱密碼,登入以後再開啟新的頁面時,自動顯示的是已登入的狀態,不需要再次重新登入。這裡就是session功能的乙個小小的體現。

那麼,剛才這個小小的應用發生了什麼呢?

如圖所示:在使用者1和使用者2登入的時候,我們的伺服器在他們登入成功後,在session表中為他們每個使用者分配了乙個sessionid並且存下了乙個對應的資訊。當使用者第二次訪問該伺服器的時候,會將sessionid在request請求中攜帶者傳送過去。這時我們的伺服器就可以根據sessionid確定使用者儲存的資料,然後進行使用。如圖所示:

當session超過一定時間(一般為30分鐘)沒有被訪問時,伺服器就會認為這個session對應的客戶端已經停止活動,然後將這個session刪除。用以節省空間。

當使用者關閉瀏覽器時,sessionid的資訊會丟失,雖然伺服器session還在,依然無法訪問到session中的資料。

session 的工作原理?

session 是瀏覽器和伺服器會話過程中,伺服器分配的一塊儲存空間。伺服器預設為瀏覽器在cookie中設定 sessionid,瀏覽器在向伺服器請求過程中傳輸 cookie 包含 sessionid 伺服器根據 sessionid 獲取出會話中儲存的資訊。由於 http 協議是無狀態的,即 htt...

Session的工作原理

在伺服器中系統會為每個會話維護乙個 session。不同的會話,對應不同的 session。系統是如何識別各個 session 物件的?即是如何做到在同一會話過程中,一直使用的是同乙個 session 物件呢?1 寫入 session 列表 伺服器對當前應用中的 session 是以 map 的形式...

Session的工作原理

以前在學習的時候沒怎麼注意,今天又回過頭來仔細研究研究了一下session的生命週期。session儲存在伺服器端,一般為了防止在伺服器的記憶體中 為了高速訪問 sessinon在使用者訪問第一次訪問伺服器時建立,需要注意只有訪問jsp servlet等程式時才會建立session,只訪問html ...