Web存儲技術詳解:sessionStorage、localStorage與Cookie

一、核心特性對比

特性CookielocalStoragesessionStorage
存儲大小4KB左右5-10MB5-10MB
生命周期可設置過期時間永久存儲(除非手動清除)會話期間有效(標簽頁關閉即清除)
作用域同源的所有窗口同源的所有窗口僅當前標簽頁
自動發送每次HTTP請求自動發送不自動發送不自動發送
存儲位置瀏覽器和服務器僅瀏覽器僅瀏覽器
API易用性需手動解析簡單鍵值對API簡單鍵值對API
安全性較低(易受XSS攻擊)較高較高

二、API使用示例

1. Cookie操作

// 設置Cookie
document.cookie = "username=John; expires=Fri, 31 Dec 2025 23:59:59 GMT; path=/";// 讀取Cookie
function getCookie(name) {const value = `; ${document.cookie}`;const parts = value.split(`; ${name}=`);if (parts.length === 2) return parts.pop().split(';').shift();
}// 刪除Cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

2. localStorage操作

// 存儲數據
localStorage.setItem('theme', 'dark');// 讀取數據
const theme = localStorage.getItem('theme');// 刪除數據
localStorage.removeItem('theme');// 清空所有
localStorage.clear();

3. sessionStorage操作

// 存儲數據
sessionStorage.setItem('sessionId', 'abc123');// 讀取數據
const sessionId = sessionStorage.getItem('sessionId');// 刪除數據
sessionStorage.removeItem('sessionId');// 清空當前會話存儲
sessionStorage.clear();

三、使用場景推薦

1. Cookie適用場景

  • 用戶身份認證:存儲Session ID

  • 跟蹤用戶行為:分析用戶訪問路徑

  • 個性化設置:保存語言、地區偏好(需要服務器訪問時)

2. localStorage適用場景

  • 長期用戶設置:主題、字體大小等偏好

  • 離線應用數據:緩存應用數據供離線使用

  • 不敏感數據存儲:如閱讀進度、應用狀態

3. sessionStorage適用場景

  • 表單數據暫存:防止頁面意外關閉丟失數據

  • 單頁應用狀態:存儲當前會話的臨時狀態

  • 敏感數據臨時存儲:如支付流程中的臨時令牌

四、安全最佳實踐

  1. Cookie安全

    • 始終使用Secure標志(僅HTTPS)

    • 敏感Cookie設置HttpOnly(防XSS)

    • 設置SameSite=StrictLax(防CSRF)

    • 限制Cookie作用域(Domain和Path)

  2. Web存儲安全

    • 避免存儲敏感信息(令牌、密碼等)

    • 對存儲的數據進行加密

    • 實施內容安全策略(CSP)

    • 定期清理不再需要的數據

  3. 通用原則

    • 最小化存儲數據量

    • 設置合理的過期時間

    • 提供用戶控制選項(清除數據)

    • 使用子資源完整性(SRI)防止惡意腳本

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92219.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3. 為什么 0.1 + 0.2 != 0.3

總結 底層是二進制實現概述 在 JavaScript 中,0.1 0.2 的結果并不是精確的 0.3,而是 0.30000000000000004。這個現象并不是 JavaScript 的“bug”,而是由于浮點數在計算機底層的二進制表示方式導致的精度丟失問題。一、計算機如何表示小數&a…

股票數據接口哪家好?專業評測各主流接口的優勢與不足

Python股票接口實現查詢賬戶,提交訂單,自動交易(1) Python股票程序交易接口查賬,提交訂單,自動交易(2) 股票量化,Python炒股,CSDN交流社區 >>> 股票…

如何用分布式架構視角理解宇宙穩定性?從精細調參到微服務的類比思考

在調試一段多線程分布式代碼時,我忽然意識到一個不合理的事實:為什么現實世界這么穩定?為什么沒有“宇宙藍屏”或“感知崩潰”?為什么每天醒來,我們還能看到同樣的物理規律、感知同一個自我?站在程序員的角…

游戲畫面總是卡頓怎么辦 告別延遲暢玩游戲

玩游戲最讓人頭疼的問題之一就是畫面卡頓,影響操作流暢度與游戲體驗。卡頓可能由硬件性能、系統設置、網絡延遲等多種因素導致。本文將從不同角度出發,為你提供五個有效解決方法,幫助你快速提升游戲流暢度。 一、降低游戲畫質設置 高畫質雖然…

VUE+SPRINGBOOT從0-1打造前后端-前后臺系統-郵箱重置密碼

在現代Web應用中,密碼重置功能是用戶賬戶安全體系中不可或缺的一部分。本文將詳細介紹如何使用Vue.js前端框架和SpringBoot后端框架實現一個基于郵箱驗證的密碼重置功能。功能概述本密碼重置功能包含以下核心流程:用戶輸入注冊郵箱系統發送驗證碼到該郵箱…

華為云云產品的發展趨勢:技術創新驅動數字化未來

近年來,隨著5G、人工智能(AI)、大數據、物聯網(IoT)和邊緣計算等新興技術的快速發展,全球云計算產業正迎來新一輪變革。作為中國領先的云服務提供商,華為云依托華為集團在ICT(信息與…

防御保護07-08

CIDR 可變長子網掩碼 VLSM 無類域間路由NET 用少量的私有地址替換大量的共有地址私網地址不能再互聯網上去使用、去分配。這里的互聯網指的是公網。服務器映射--用來使外部用戶能訪問私網服務器。靜態映射--公網地址和私網地址進行一對一的映射。地址池--中存在多個公網IP地址時…

PDF轉圖片工具技術文檔(命令行版本)

PDF轉圖片工具技術文檔(命令行版本) 1. 功能概述 本工具是一個基于PyMuPDF庫的PDF轉圖片命令行工具,能夠: 通過命令行參數接收PDF文件路徑將PDF的每一頁轉換為PNG格式的圖片自動創建輸出目錄(./static)保存…

k8s+isulad 國產化技術棧云原生技術棧搭建1-VPC

為響應政策,最近在搗鼓國產化云原生平臺的搭建。在搭建過程中遇到了問題記錄下來,以備后續查找。 我選用了中國電子云的云平臺來搭建K8S集群,選用的技術棧是華為開源的openeulerk8sisulad框架,參考官網文檔資料:iSula…

chatgpt plus簡單得,不需要求人,不需要野卡,不需要合租,不需要昂貴的價格

ChatGPT Plus:開啟智能對話的新紀元 引言:AI助手的時代已經到來 在當今信息爆炸的時代,人工智能助手已經成為我們工作、學習和生活中不可或缺的伙伴。作為AI領域的佼佼者,ChatGPT自問世以來就以其強大的語言理解和生成能力贏得了…

鴻蒙OS 系統安全

鴻蒙OS 系統安全 在搭載 HarmonyOS 的分布式終端上,可以保證“正確的人,通過正確的設備,正確地使用數據”。 ? 通過“分布式多端協同身份認證”來保證“正確的人”。 ? 通過“在分布式終端上構筑可信運行環境”來保證“正確的設備”。 ? …

【Dify學習筆記】:保留原所有數據,升級Dify版本

【Dify學習筆記】:保留原所有數據,升級Dify版本原版本1.4.0 升級最新版1.7.1由于是升級成功后才記錄的筆記,沒法獲取舊頁面的版本了,先看下鏡像信息,上面的拉取的新容器,下面的之前的舊容器1、關閉舊docker…

微信小程序功能實現:頁面導航與跳轉

1. 聲明式導航&#xff08;navigator組件&#xff09;聲明式導航通過在WXML頁面中使用 <navigator> 組件來實現頁面跳轉&#xff0c;使用起來較為直觀簡便&#xff0c;語法格式如下&#xff1a;<navigator url"目標頁面路徑" open-type"跳轉類型"…

GenieWizard: Multimodal App Feature Discovery with LargeLanguage Models

GenieWizard:使用LargeLanguage模型發現多模式應用程序功能 以下是對論文《GenieWizard: Multimodal App Feature Discovery with Large Language Models》的詳細總結,結合教育技術學視角的分析: 一、核心問題與背景 問題背景: 多模態交互(如語音+觸摸)比傳統圖形交互更靈…

[硬件電路-120]:模擬電路 - 信號處理電路 - 在信息系統眾多不同的場景,“高速”的含義是不盡相同的。

一、按照維度區分在信息系統中&#xff0c;“高速”是一個相對且多維的概念&#xff0c;其核心在于信號或數據的動態變化速率遠超傳統系統處理能力&#xff0c;導致必須采用專門的設計技術來保障傳輸質量與實時性。這一概念可從以下四個維度解析&#xff1a;1、頻率維度&#x…

React ahooks——副作用類hooks之useThrottleFn

useThrottleFn 用于創建一個節流函數&#xff0c;確保該函數在指定時間內最多執行一次。一、基本使用import { useThrottleFn } from ahooks; import { Button, Space } from antd;const ThrottleDemo () > {const { run, cancel, flush } useThrottleFn((message) > {…

PostgreSQL——函數

PostgreSQL函數一、數學函數1.1、絕對值函數ABS(x)和圓周率函數PI()1.2、平方根函數SQRT(x)和求余函數MOD(x,y)1.3、取整函數CEIL(x)、CEILING(x)和FLOOR(x)1.4、四舍五入函數ROUND(x)和ROUND(x,y)1.5、符號函數SIGN(x)1.6、冪運算函數POW(x,y)、POWER(x,y)和EXP(x)1.7、對數運…

ffmpeg下載windows教程

1.百度搜索ffmpeg&#xff0c;進入官網2.點擊Download3.點擊windows圖標&#xff0c;選擇藍色框內的點擊4.點擊藍色框內帶有win64下載5.下載完好打開bin&#xff0c;看到3個exe文件6.打開cmd文件輸入 ffmpeg -version &#xff0c;出現以下畫面證明安裝成功7.然后添加環…

解鎖高并發LLM推理:動態批處理、令牌流和使用vLLM的KV緩存秘密

網羅開發&#xff08;小紅書、快手、視頻號同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

跨域場景下的Iframe事件監聽

背景在當前window窗口&#xff0c;對于一些浮窗組件&#xff0c;一般需要點擊當前window下的其他位置才能夠隱藏浮窗。但如果當前窗口中存在iframe區域&#xff0c;那么由于一些特殊的性質&#xff0c;無法通過常規的click點擊事件監聽iframe元素的點擊&#xff0c;而通過conte…