cookie是什麼?和session有什麼區別?

狠狠赚一笔發表於2024-08-08

CookieSession 都是用於跟蹤使用者會話狀態的技術,但它們以不同的方式工作,並且儲存位置不同。

Cookie

  1. 定義:Cookie 是小型的資料檔案,由伺服器傳送到客戶端瀏覽器,然後瀏覽器將這些資料儲存在使用者的本地硬碟上,當瀏覽器再次請求同一網站時,它會將這些 Cookie 傳送回伺服器。
  2. 儲存位置:Cookie 儲存在客戶端(使用者的計算機)上。
  3. 作用:Cookie 主要用於識別使用者、儲存使用者偏好設定、跟蹤購物車商品等。
  4. 大小限制:單個 Cookie 的大小通常限制為 4KB 左右,每個域名下的 Cookie 數量也有限制。
  5. 安全性:由於 Cookie 儲存在客戶端,因此容易受到指令碼攻擊(如 XSS),敏感資訊不應儲存在 Cookie 中。
  6. 生命週期:Cookie 可以是會話性的(瀏覽器關閉後消失)或永續性的(直到過期時間或被手動刪除)。

Session

  1. 定義:Session 是一種伺服器端機制,用於儲存使用者會話期間的資訊,以便在多個頁面請求之間保持狀態。
  2. 儲存位置:Session 資料儲存在伺服器端,通常是記憶體資料庫中,有時也可能儲存在檔案系統或資料庫中。
  3. 作用:Session 用於儲存使用者登入狀態、購物車資訊或其他需要在伺服器端維護的會話狀態。
  4. 大小限制:Session 沒有固定大小限制,但應合理控制其大小以避免不必要的資源消耗。
  5. 安全性:比 Cookie 更安全,因為資料不儲存在客戶端,減少了遭受客戶端攻擊的風險。
  6. 生命週期:Session 的生命週期通常與使用者的活動相關,當使用者長時間無操作後會自動結束,或者在伺服器端被顯式地清除。

主要區別

  • Cookie 儲存在客戶端,而 Session 儲存在伺服器端。
  • Cookie 受到大小限制,而 Session 沒有嚴格的大小限制。
  • Cookie 可能會被禁用或清除,影響其可靠性;而 Session 不受此影響。
  • Cookie 相對不安全,容易被惡意指令碼讀取,而 Session 更加安全。
  • Session 依賴於 Cookie 來傳遞 Session ID(除非使用其他方法如 URL 重寫)。如果客戶端禁用了 Cookie,則可能無法正確使用 Session。

相關文章