|
Session的工作原理也是這樣。
首先,php為建立Session的用戶產(chǎn)生一個獨(dú)一無二的字符串,用來標(biāo)志這個用戶的session。一般將這個字符串稱作Session Id。然后“sess”+Session Id為文件名(例如一個Session ID為111,那么文件名為sess_111)在服務(wù)器的文件系統(tǒng)中建立一個文件,在文件中保存用戶在Session所定義的全局變量的變量名和值。然后再將Session Id作為一個名為phpSession的Cookie保存在用戶端的文件系統(tǒng)中。
然后,當(dāng)用戶再次連接服務(wù)器訪問一個php腳本時,php從用戶發(fā)來的PEESession這個Cookie中得到用戶所在Session的Session Id,并根據(jù)Session Id從服務(wù)器的文件系統(tǒng)中保存Session信息的文件。最后從這個文件中讀出用戶在上次連接時所設(shè)置的全局變量的值。
因此,我們可以看到Session的工作原理和我們上一節(jié)所介紹的身份認(rèn)證的工作原理是一樣的。所不同的只是Session將信息保存在了服務(wù)器的文件系統(tǒng)中,而我們將信息保存在了數(shù)據(jù)庫中。當(dāng)然使用Session好處就是數(shù)據(jù)的保存和獲取是由php自動完成的,而直接使用Cookie的話就需要自己動手進(jìn)行數(shù)據(jù)的保存和獲取。
Session利用Cookie的身份標(biāo)志功能,將用戶在瀏覽網(wǎng)站時需要保存的信息保存在服務(wù)器上。這樣Session既克服了HTTP協(xié)議的缺陷,又防止了信息的泄漏,而且方便了編程者的使用,是一個非常好的解決方案。不過,Session的功能只有php4支持,php3是不支持Session的。因此使用php3進(jìn)行網(wǎng)站構(gòu)建的讀者只能采用直接使用Cookie的方式。
php技術(shù):Session的工作方式,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。