session 的工作原理?

2021-09-23 08:06:54 字數 1003 閱讀 8430

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

由於 http 協議是無狀態的,即 http 請求一次連線一次,資料傳輸完畢,連線就斷開了,下次訪問需要重新連線。

通過 cookie 中的 sessionid 欄位和伺服器端的 session 關聯,可以確定會話的身份資訊。

使用者資訊可以通過加密儲存到 cookie,但是這樣做的安全性很差,瀏覽器的 cookie 的容易被其他程式獲取和篡改。使用 session 的意義在於 session 儲存在伺服器,相對安全性更高。

瀏覽器訪問伺服器的 servlet(jsp)時,伺服器會自動建立 session,並把 sessionid 通過 cookie 返回到瀏覽器。

servlet 規範中,通過 request.getsession(true)  可以強制建立 session。

伺服器會預設給 session 乙個過期時間,即從該 session 的會話在有效時間內沒有再被訪問就會被設定過超時,需要重新建立會話。

如 tomcat 的缺省會話超時時間為30分鐘。

會話超時時間是可以通過配置檔案設定,如修改 web.xml 、server.xml 檔案

1、web.xml 檔案

302、server.xml 檔案

呼叫 servlet api 手動設定 session 超時時間

request.getsession().setmaxinactiveinterval(60 * 30);//session 30分鐘失效
呼叫 servlet api 手動銷毀 session

request.getsession().invalidate();

Session的工作原理

首先,我們需要知道session是什麼。有比較專業的人將session稱之為會話控制。說實在的,如果這麼說的話,我也不清楚session到底算是什麼。其實session是乙個存在伺服器上的類似於乙個雜湊 的檔案。裡面存有我們需要的資訊,在我們需要用的時候可以從裡面取出來。類似於乙個大號的map吧,裡...

Session的工作原理

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

Session的工作原理

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