簡單易懂,Session的工作方式(轉)
來源:互聯網
上載者:User
session 下面我們來看一下Session是如何工作的。不知你是否知道通過Cookie來實現身份認證的吧。首先產生一個獨一無二的Cookie作為使用者身份的標誌,並在資料庫中進行註冊。然後通過使用者傳遞來的Cookie和資料庫中註冊的Cookie進行對照以確定使用者的身份。
Session的工作原理也是這樣。
首先,PHP為建立Session的使用者產生一個獨一無二的字串,用來標誌這個使用者的session。一般將這個字串稱作Session Id。然後“sess”+Session Id為檔案名稱(例如一個Session ID為111,那麼檔案名稱為sess_111)在伺服器的檔案系統中建立一個檔案,在檔案中儲存使用者在Session所定義的全域變數的變數名和值。然後再將Session Id作為一個名為PHPSession的Cookie儲存在使用者端的檔案系統中。
然後,當使用者再次串連伺服器訪問一個PHP指令碼時,PHP從使用者發來的PEESession這個Cookie中得到使用者所在Session的Session Id,並根據Session Id從伺服器的檔案系統中儲存Session資訊的檔案。最後從這個檔案中讀出使用者在上次串連時所設定的全域變數的值。
因此,我們可以看到Session的工作原理和我們上一節所介紹的身份認證的工作原理是一樣的。所不同的只是Session將資訊儲存在了伺服器的檔案系統中,而我們將資訊儲存在了資料庫中。當然使用Session好處就是資料的儲存和擷取是由PHP自動完成的,而直接使用Cookie的話就需要自己動手進行資料的儲存和擷取。
Session利用Cookie的身份標誌功能,將使用者在瀏覽網站時需要儲存的資訊儲存在伺服器上。這樣Session既克服了HTTP協議的缺陷,又防止了資訊的泄漏,而且方便了編程者的使用,是一個非常好的解決方案。不過,Session的功能只有PHP4支援,PHP3是不支援Session的。因此使用PHP3進行網站構建的讀者只能採用直接使用Cookie的方式。