Session的理解Cookie的理解

本文只對Session和cookie稍稍瞭解了下,後續會持續更新。。。。

一、Cookie

        cookie 歷來指就着牛奶一起吃的點心。然而,在因特網內,“Cookie”是小量信息,由網絡服務器發送出來以存儲在網絡瀏覽器上,從而下次這位獨一無二的訪客又回到該網絡服務器時,可從該瀏覽器讀回此信息。這是很有用的,讓瀏覽器記住這位訪客的特定信息,如上次訪問的位置、花費的時間或用戶首選項(如樣式表)。Cookie 是個存儲在瀏覽器目錄的文本文件,當瀏覽器運行時,存儲在 RAM 中。一旦閣下從該網站或網絡服務器退出,Cookie 也可存儲在計算機的硬驅上。當訪客結束其瀏覽器對話時,即終止的所有 cookie。

 

 

二、Session

        Session:在計算機中,尤其是在網絡應用中,稱爲“會話”。

       具體到Web中的Session指的就是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是用戶瀏覽這個網站所花費的時間。Session實際上是一個特定的時間概念。一個Session的概念需要包括特定的客戶端,特定的服務器端以及不中斷的操作時間。A用戶和C服務器建立連接時所處的Session同B用戶和C服務器建立連接時所處的Session是兩個不同的Session。
session的工作原理
(1)當一個session第一次被啓用時,一個唯一的標識被存儲於本地的cookie中
(2)首先使用session_start()函數,PHP從session倉庫中加載已經存儲的session變量
(3)當執行PHP腳本時,通過使用session_register()函數註冊session變量
(4)當PHP腳本執行結束時,未被銷燬的session變量會被自動保存在本地一定路徑下的session庫中,這個路徑可以通過php.ini文件中的session.save_path指定,下次瀏覽網頁時可以加載使用。

       Session週期:新的瀏覽器窗口啓動後,開始一個新的Session,觸發Global的Session_Start的調用,從第一個瀏覽器窗口打開的瀏覽器窗口不啓動新的Session。Session過期後,執行頁面的提交也會觸發Session_Start,等於是新的一個Session。

         PHP session 變量用於存儲關於用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,並且對於應用程序中的所有頁面都是可用的。

        您在計算機上操作某個應用程序時,您打開它,做些更改,然後關閉它。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。然而,在因特網上問題出現了:由於 HTTP 地址無法保持狀態,Web 服務器並不知道您是誰以及您做了什麼。

        PHP session 解決了這個問題,它通過在服務器上存儲用戶信息以便隨後使用(比如用戶名稱、購買商品等)。然而,會話信息是臨時的,在用戶離開網站後將被刪除。如果您需要永久存儲信息,可以把數據存儲在數據庫中。
        Session 的工作機制是:爲每個訪客創建一個唯一的 id (UID),並基於這個 UID 來存儲變量。UID 存儲在 cookie 中,或者通過 URL 進行傳導。
 
      
       Session 能否像 Cookie 那樣設置生存週期呢?有了 Session 是否就完全拋棄 Cookie 呢?我想說,結合 Cookie 來使用 session 纔是最方便的。Session 是如何來判斷客戶端用戶的呢?它是通過 Session ID 來判斷的,什麼是 Session ID,就是那個 Session 文件的文件名,Session ID 是隨機生成的,因此能保證唯一性和隨機性,確保 Session 的安全。一般如果沒有設置 Session 的生存週期,則 Session ID 存儲在內存中,關閉瀏覽器後該 ID 自動註銷,重新請求該頁面後,重新註冊一個 session ID。如果客戶端沒有禁用 Cookie,則 Cookie 在啓動 Session 會話的時候扮演的是存儲 Session ID 和 session 生存期的角色。
     流程小結: Session儲存在服務器端,根據客戶端提供的SessionID來得到這個用戶的文件,然後讀取文件,取得變量的值,SessionID可以 使用客戶端的Cookie或者Http1.1協議的Query_String(就是訪問的URL的“?”後面的部分)來傳送給服務器,然後服務器讀取 Session的目錄……

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章