PHP cookie和session

來源:互聯網
上載者:User
cookie給了2小時,這兩個小時不關你有沒有動作,到時間他都會到期,而且session是只要你有動作或重新整理頁面他都不會到期對嗎?對嗎,我測了COOKIE是這樣的

回複內容:

cookie給了2小時,這兩個小時不關你有沒有動作,到時間他都會到期,而且session是只要你有動作或重新整理頁面他都不會到期對嗎?對嗎,我測了COOKIE是這樣的

首先你要搞明白 session 、cookie之間的關係。
因為http協議是無狀態的,所以2個http請求之間是沒有任何聯絡。
但是很多時候的業務需求是需要知道2個http請求之間是要進行資訊共用的,這就是session的由來。
因為http協議是無狀態的,所以需要有資訊共用的2個http請求中帶上一個session標誌,通過這個session標誌,可以把上個請求的資訊在下次請求時擷取出來,通常是把session標誌儲存到cookie中(當然你也可以把這個標誌放到url參數中或者放在請求header中)。
因此session到期不到期,完全取決於某個請求時是否有session標誌,而這個session標誌的相應的session資訊是否還在伺服器保留。

基於問題回答

cookie給了2小時,這兩個小時不關你有沒有動作,到時間他都會到期

你說的沒錯,前提是你沒有更改儲存在cookie中seesion標誌的到期時間

而且session是只要你有動作或重新整理頁面他都不會到期對嗎?

這個更新的伺服器儲存session資訊的時間,即

在服務端session到期時間 = 上次更新session資訊的時間 + 設定的到期時間

調用session_start方法後,伺服器會返回給用戶端一個sessionid,用戶端(一般是瀏覽器)會在每一次請求伺服器的時候帶上這個sessionid,伺服器就是根據這個sessiond來找到對應的回話儲存記錄的。
所以“session是只要你有動作或重新整理頁面他都不會到期”
這個不全對,雖然看上去是這樣。但是如果用戶端清除了sessionid(例如關閉瀏覽器),或者伺服器清除掉了對應的session回話記錄(在設定的到期時間內沒有接收到請求),都會導致session到期

所謂session也是服務端產生一個id然後作為cookie儲存在使用者本地,服務端這個cookie作為一個唯一值key儲存在資料庫。

session會自己處理到期時間的問題,比如只要有請求,自動重新設定一次cookie(到期時間就又延後了好多)

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.