簡介:這是PHP Session的生存周期的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=340522' scrolling='no'>
PHP Session的生存周期
session 是一種伺服器端用於儲存有關使用者會話資訊的機制,伺服器使用一種類似於散列表的結構(也可能就是使用散列表)來儲存資訊。
當程式需要為某個用戶端的請求建立一個 session 的時候,伺服器首先會檢查這個用戶端是否已經包含了一個 session 標識,這個我們稱為 session id(擷取方法為 session_id() ),如果已包含一個 session id 則說明此用戶端之前已經建立過 session,伺服器則按照 session id 把這個 session 中的值檢索出來,如果用戶端不包含 session id,說明此用戶端第一次請求伺服器或手動清除過快取檔案,則為此用戶端建立一個 session 並且產生一個與此 session 相關聯的 session id,一般來說,session id 的值是不會重複的,並且加密的字串,這個 session id 將被在本次響應中返回給用戶端儲存。
session 在何時被建立 ?
通常(是指通常)是在瀏覽器向伺服器端第一次請求時被建立,並且它會佔用一定的記憶體空間,因此在不必要的情況下,盡最關閉 session 。
session 何時被刪除
通常情況下,session 在會在這幾種情況下被刪除,一是使用 session_destroy() 重設函數手動刪除;二是 session 的上次啟用時間距離目前時間的間隔超過了 session 的逾時設定的時間;三是伺服器處理序被停止。
怎麼在瀏覽器關閉時刪除 session
理論上來說,是做不到這一點,http是一種無狀態協議,因此伺服器不知道用戶端什麼時候關掉的瀏覽器,並且PHP也沒有一個關相的函數來擷取此項資訊,但這個問題還可以得到解決,就是使用 javascript 代碼 window.oncolose 來監視瀏覽器的關閉動作,然後用Ajax向伺服器端發送一個請求來刪除 session ,但這個辦法也並不會完全解決問題,原因是在有些情況下比如瀏覽器崩潰、突然斷電、使用者死機等這些時候並不能作出反應。
愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具
http://biancheng.dnbcw.info/php/340522.html pageNo:7