session工作原理簡介


         session是什么

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

   其實session是一個存在服務器上的類似於一個散列表格的文件。里面存有我們需要的信息,在我們需要用的時候可以從里面取出來。類似於一個大號的map吧,里面的鍵存儲的是用戶的sessionid,用戶向服務器發送請求的時候會帶上這個sessionid。這時就可以從中取出對應的值了。

         session有什么用

         說起session的作用,簡單的舉個例子:我們在登錄某些網站的時候,輸入了用戶名密碼,登錄以后再打開新的頁面時,自動顯示的是已登錄的狀態,不需要再次重新登錄。這里就是session功能的一個小小的體現。

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

   

 

 

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

    

    session的生命周期

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

    當用戶關閉瀏覽器時,sessionId的信息會丟失,雖然服務器session還在,依然無法訪問到session中的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM