session原理解析

2021-07-05 05:17:11 字數 979 閱讀 7651

首先session跟cookies都是會會話進行跟蹤,session通過在伺服器端記錄資訊來記錄,cookies通過在客戶端記錄資訊來記錄。

在此只對session進行分析:

session是記錄在伺服器記憶體中的,每當乙個使用者通過瀏覽器第一次進行訪問時進行建立(需要注意只有訪問jsp,servlet等程式時才會建立session,只訪問html,image等靜態資源時不會建立,可呼叫request.getsession(true)強制生成session。jsp在編譯成servlet的時候也會預設強制生成一行httpsession session = request.getsession(true)從而建立乙個會話)。同時伺服器會將該新建的session的id返回給瀏覽器,瀏覽器則會將該id記錄在其會話cookies裡,之後每次請求都會在請求頭的set-cookies裡傳遞乙個引數jsesseionid=******。伺服器則會在接收到請求後拿到jsesseionid對應的值,並返回id所對應的session給使用者使用。

session進行會話跟蹤有兩種方法:

1.利用cookies,使用者每次訪問(第一次訪問外)時都會通過cookies攜帶 session的id

2.利用url重寫,即把sessionid寫在請求鏈結後面,可能會以逗號,句號,分號分隔,這取決與容器內部實現。tomcat是用分號分隔。

那麼session什麼時候會失效呢?

1002.顯示的呼叫session的invalidate方法可銷毀session。

對於網路上的乙個說法:當使用者關閉了瀏覽器後session會銷毀,這其實是錯誤的。關閉瀏覽器只會關閉掉會話cookies,而session則會繼續儲存在伺服器端。那麼有人會說重新開啟瀏覽器後訪問的時候為什麼cookies中的jsessionid已經改變了呢?那是因為該會話cookies在瀏覽器關閉後也關閉了,重新請求是伺服器拿不到jsessionid所以會認為此使用者是第一次訪問我的,所以重新建立了乙個session並返回乙個新的sessionid。(之前的session依然存在於伺服器中)

LCD原理解析

硬體體系 3個部分 lcd液晶 屏 lcd驅動晶元 lcd控制器 整合在arm晶元內部 控制器 通過驅動晶元 控制液晶屏 液晶屏種類 stn gf tft tft 在嵌入式中較為常用 lcd控制器結構與模組 由17個可程式設計的暫存器組和一塊 256 16的調色盤內 存組成,通過這些暫存器,可以配置...

Kerberos原理解析

kerberos這一名詞 於希臘神話 三個頭的狗 地獄之門守護者 系統設計上採用客戶端 伺服器結構與des加密技術,並且能夠進行相互認證,即客戶端和伺服器端均可對對方進行身份認證。可以用於防止竊聽 防止replay攻擊 保護資料完整性等場合,是一種應用對稱金鑰體制進行金鑰管理的系統。支援sso si...

Spark Worker原理解析

1.spark原始碼剖析 2.worker啟動driver原始碼 3.worker啟動executor原始碼 4.worker與master互動 一 worker啟動driver內幕和流程機制 1,cluster中的driver失敗的時候,如果supervise為true,則啟動該driver的wo...