1. 程式人生 > >session的實現機制?session的生命週期設定?session和cookie的區別?

session的實現機制?session的生命週期設定?session和cookie的區別?

session的實現機制:
我的理解是這樣的,使用者在登陸時,向伺服器傳送請求,伺服器處理請求,session_start()開啟session,將使用者資訊儲存在session中,並生成一個session_id,將session_id傳送給客戶端,客戶端將session_id儲存在cookie中,當用戶再次傳送請求時,客戶端會將cookie中的session_id一同傳送給伺服器,伺服器處理請求。當客戶端關閉時,cookie會銷燬,儲存在cookie中的session_id會銷燬,session失效。
說明:當瀏覽器關閉cookie時,session會失效,可以通過其他方式來實現session會話控制。
session和cookie的區別:

  1. session是儲存在伺服器的,以文字的形勢儲存在硬碟。cookie是儲存在客戶端(瀏覽器),儲存在記憶體中。當訪問量過多時,會影響伺服器的效能,一般使用代理服器儲存session。
  2. cookie在瀏覽器可以修改,安全性低,session安全性高。
  3. 單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個cookie。

session的生命週期設定:
session_set_cookie_param($lifetime)

cookie生存時間設定:
setcookie(session_name(), session_id(), time() + $lifeTime, “/”);