狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【WEB開發】Cookie、Session、Local Storage 和 Session Storage 詳解

admin
2025年4月8日 9:44 本文熱度 267

一、基本概念與工作機制

  1. Cookie

    • 可設置過期時間(持久化)或會話級別(關閉瀏覽器失效)。
    • 支持安全屬性(HttpOnlySecureSameSite)防范 XSS 和 CSRF 攻擊。
    • 服務器通過響應頭 Set-Cookie 設置客戶端存儲的鍵值對。
    • 客戶端每次請求自動攜帶同源 Cookie,實現狀態保持(如登錄憑證)。
    • 定義

      由服務器生成并發送到客戶端的小型文本數據(通常不超過4KB),用于跟蹤用戶狀態。
    • 工作機制:

      服務器通過響應頭 Set-Cookie 設置客戶端存儲的鍵值對。
      客戶端每次請求自動攜帶同源 Cookie,實現狀態保持(如登錄憑證)。
    • 特性:

      可設置過期時間(持久化)或會話級別(關閉瀏覽器失效)。
      支持安全屬性(HttpOnlySecureSameSite)防范 XSS 和 CSRF 攻擊。
  2. Session

    • 數據存儲在服務器內存或數據庫中,安全性較高。
    • 默認會話級有效期,支持手動設置超時時間。
    • 首次請求時服務器創建 Session 并返回 Session ID,后續請求通過該 ID 關聯數據。
    • 若客戶端禁用 Cookie,需通過 URL 重寫傳遞 Session ID。
    • 定義

      服務器端存儲的用戶會話數據,通過 Session ID(通常存于 Cookie)標識客戶端身份。
    • 工作機制:

      首次請求時服務器創建 Session 并返回 Session ID,后續請求通過該 ID 關聯數據。
      若客戶端禁用 Cookie,需通過 URL 重寫傳遞 Session ID。
    • 特性:

      數據存儲在服務器內存或數據庫中,安全性較高。
      默認會話級有效期,支持手動設置超時時間。
  3. Local Storage

    • 通過 localStorage.setItem(key, value) 存儲字符串類型數據。
    • 同源窗口共享數據,容量約5MB。
    • 定義

      HTML5 提供的客戶端持久化存儲,數據永久保存(需手動刪除)。
    • 工作機制:

      通過 localStorage.setItem(key, value) 存儲字符串類型數據。
      同源窗口共享數據,容量約5MB。
    • 典型應用

      長期保存用戶主題偏好、緩存靜態資源。
  4. Session Storage

    • 與 Local Storage API 相同,但作用域限定為單個標簽頁。
    • 適用于臨時數據存儲(如表單草稿、多步驟流程狀態)。
    • 定義

      會話級客戶端存儲,數據僅在當前標簽頁有效,關閉后自動清除。
    • 工作機制:

      與 Local Storage API 相同,但作用域限定為單個標簽頁。
      適用于臨時數據存儲(如表單草稿、多步驟流程狀態)。

?二、優缺點對比

特性CookieSessionLocal StorageSession Storage
存儲位置
客戶端
服務器端
客戶端
客戶端
生命周期
可自定義過期時間
會話或自定義超時
永久存儲(手動刪除)
會話級(標簽頁關閉清除)
容量限制
4KB/域名
無限制(受服務器內存限制)
約5MB
約5MB
安全性
較低(易受 XSS/CSRF 攻擊)
較高(數據在服務端)
中(依賴同源策略)
中(同 Local Storage)
數據傳輸
每次請求自動攜帶
僅傳遞 Session ID
不參與 HTTP 請求
不參與 HTTP 請求



三、應用案例分析

  1. Cookie 應用:用戶登錄狀態

    • 場景

      用戶登錄后,服務器返回包含身份令牌的 Cookie,后續請求自動攜帶實現免密驗證。
    • 代碼示例:
      javascript // 服務端設置 Cookie(Node.js) res.setHeader('Set-Cookie', 'token=abc123; HttpOnly; Max-Age=3600');

  2. Session 應用:購物車功能

    • 場景

      用戶添加商品至購物車,服務器通過 Session 存儲商品列表。
    • 代碼示例:
      java // Java Servlet 中操作 Session HttpSession session = request.getSession(); session.setAttribute("cart", productList);

  3. Local Storage 應用:主題偏好持久化

    • 場景

      用戶選擇深色主題后,前端保存至 Local Storage,下次加載自動應用。
    • 代碼示例:
      javascript // 保存主題 localStorage.setItem('theme', 'dark'); // 讀取主題 const theme = localStorage.getItem('theme') || 'light'; document.body.className = theme;

  4. Session Storage 應用:表單草稿暫存

    • 場景

      用戶填寫多步驟表單時,實時保存草稿至 Session Storage,防止意外關閉丟失數據。
    • 代碼示例:
      javascript // 監聽輸入并保存 form.addEventListener('input', () => { const data = JSON.stringify(formData); sessionStorage.setItem('draft', data); });


四、安全與最佳實踐

  1. Cookie

    • 敏感數據(如 Token)應設置 HttpOnly 和 Secure 屬性。
    • 使用 SameSite=Strict 防范 CSRF 攻擊。
  2. Session

    • 避免存儲過大對象,防止服務器內存壓力。
    • 分布式系統中需使用集中式 Session 存儲(如 Redis)。
  3. Web Storage

    • 避免存儲敏感信息(如密碼),需加密處理。
    • 監聽 storage 事件實現跨標簽頁同步(僅 Local Storage)。

五、總結

  • Cookie

    適用于需與服務器交互的小型數據(如身份驗證),但需注意安全性。
  • Session

    適合存儲敏感或臨時會話數據(如購物車),依賴服務器資源。
  • Local Storage

    長期存儲非敏感數據(如用戶偏好),容量大且易用。
  • Session Storage

    臨時存儲會話級數據(如表單草稿),標簽頁隔離更安全。

根據具體場景選擇合適的存儲方案,結合安全策略和性能要求,可顯著提升用戶體驗和系統可靠性。


閱讀原文:原文鏈接


該文章在 2025/4/8 15:02:06 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved