Session的工作方式

下面我們來看一下Session是如何工作的。不知你是否知道通過Cookie來實現身份認證的吧。首先生成一個獨一無二的Cookie作為用戶身份的標志,並在數據庫中進行註冊。然後通過用戶傳遞來的Cookie和數據庫中註冊的Cookie進行對照以確定用戶的身份。
  Session的工作原理也是這樣。
  首先,php(做為現在的主流開發語言)為建立Session的用戶產生一個獨一無二的字符串,用來標志這個用戶的session。一般將這個字符串稱作Session Id。然後“sess”+Session Id為文件名(例如一個Session ID為111,那麼文件名為sess_111)在服務器的文件系統中建立一個文件,在文件中保存用戶在Session所定義的全局變量的變量名和值。然後再將Session Id作為一個名為php(做為現在的主流開發語言)Session的Cookie保存在用戶端的文件系統中。
  然後,當用戶再次連接服務器訪問一個php(做為現在的主流開發語言)腳本時,php(做為現在的主流開發語言)從用戶發來的PEESession這個Cookie中得到用戶所在Session的Session Id,並根據Session Id從服務器的文件系統中保存Session信息的文件。最後從這個文件中讀出用戶在上次連接時所設置的全局變量的值。
  因此,我們可以看到Session的工作原理和我們上一節所介紹的身份認證的工作原理是一樣的。所不同的隻是Session將信息保存在瞭服務器的文件系統中,而我們將信息保存在瞭數據庫中。當然使用Session好處就是數據的保存和獲取是由php(做為現在的主流開發語言)自動完成的,而直接使用Cookie的話就需要自己動手進行數據的保存和獲取。
  Session利用Cookie的身份標志功能,將用戶在瀏覽網站時需要保存的信息保存在服務器上。這樣Session既克服瞭HTTP協議的缺陷,又防止瞭信息的泄漏,而且方便瞭編程者的使用,是一個非常好的解決方案。不過,Session的功能隻有php(做為現在的主流開發語言)4支持,php(做為現在的主流開發語言)3是不支持Session的。因此使用php(做為現在的主流開發語言)3進行網站構建的讀者隻能采用直接使用Cookie的方式。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *