PHP Session的生存周期

來源:互聯網
上載者:User

簡介:這是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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.