前端本地存储终极指南(从Cookie到IndexedDB的演进之路)

第一章:前端本地存储的演进背景与核心挑战

随着Web应用复杂度不断提升,用户对离线访问、数据持久化和响应速度的要求日益增强,前端本地存储技术经历了从简单到复杂的演进过程。早期的Cookie机制受限于容量(4KB)和自动携带至服务端的特性,难以满足现代应用的数据管理需求。为突破这些限制,浏览器逐步引入了更高效的存储方案。

存储技术的迭代路径

  • Cookie:最早期的客户端存储方式,主要用于身份认证,但体积小且每次请求都会发送到服务器
  • localStorage:提供约5-10MB的持久化存储,数据不会过期,适用于长期保存用户偏好设置
  • sessionStorage:会话级存储,页面关闭后自动清除,适合临时数据管理
  • IndexedDB:支持结构化数据存储,具备事务机制,适用于大规模离线数据操作
  • Cache API 与 Service Worker:实现资源缓存控制,支撑PWA应用离线运行能力

当前面临的核心挑战

尽管现代浏览器提供了多样化的存储选项,但仍存在若干关键问题:
挑战类型具体表现
存储配额限制不同浏览器分配额度不一,可能触发QuotaExceededError
跨域安全策略同源策略限制存储访问,iframe通信受阻
异步操作复杂性IndexedDB使用回调或Promise处理事务,代码冗长难维护
// 检测localStorage是否可用并安全写入
function safeSetItem(key, value) {
  try {
    localStorage.setItem(key, JSON.stringify(value));
  } catch (e) {
    if (e.name === 'QuotaExceededError') {
      console.warn('本地存储空间不足');
    }
  }
}
graph TD A[用户访问Web应用] --> B{是否有网络?} B -- 有 --> C[从服务器加载数据] B -- 无 --> D[从IndexedDB读取缓存] C --> E[同步数据至本地存储] D --> F[展示离线内容]

第二章:Cookie 与传统存储机制

2.1 Cookie 的工作原理与局限性分析

数据同步机制
Cookie 是服务器发送到用户浏览器并保存在本地的一小段文本数据。当用户后续访问同一域名时,浏览器会自动将 Cookie 附加在 HTTP 请求头中(Cookie: name=value),实现状态保持。
Set-Cookie: session_id=abc123; Path=/; HttpOnly; Secure; SameSite=Lax
该响应头指示浏览器存储名为 session_id 的 Cookie,作用路径为根路径,启用安全属性以防止 XSS 和 CSRF 攻击。
主要局限性
  • 大小限制:单个 Cookie 通常不超过 4KB
  • 传输开销:每次请求都会携带 Cookie,增加网络负载
  • 安全性风险:易受中间人攻击或窃取,尤其未启用 Secure 和 HttpOnly 时
  • 同源策略限制:无法跨域共享,限制了微服务架构下的灵活通信
典型应用场景对比
场景是否适合使用 Cookie
用户登录状态维持是(结合安全属性)
大规模数据缓存否(应使用 localStorage)

2.2 设置与读取 Cookie 的实践技巧

在 Web 开发中,合理操作 Cookie 能有效管理用户状态。设置 Cookie 时需关注安全性与作用域。
安全地设置 Cookie
为防止 XSS 攻击,建议启用 HttpOnly 和 Secure 标志:
document.cookie = "token=abc123; HttpOnly; Secure; SameSite=Strict; Path=/";
该代码设置一个仅限 HTTPS 传输、脚本无法访问的 Cookie,SameSite=Strict 可防范 CSRF 攻击。
读取 Cookie 的实用方法
由于 document.cookie 返回所有可用 Cookie 的字符串,需解析提取目标值:
function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  return parts.length === 2 ? parts.pop().split(';').shift() : '';
}
此函数通过分隔符提取指定名称的 Cookie 值,避免误读同名字段。
  • 始终限定 Cookie 的 Path 和 Domain
  • 敏感信息应加密存储

2.3 跨域与安全策略(SameSite、HttpOnly)

现代Web应用中,跨域请求和Cookie安全是保障用户数据隔离的关键环节。浏览器通过同源策略限制资源访问,但允许通过CORS机制进行可控的跨域通信。
Cookie安全属性配置
为防止XSS和CSRF攻击,应合理设置Cookie的安全标志:
Set-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict
- HttpOnly:禁止JavaScript访问Cookie,防御XSS; - Secure:仅在HTTPS下传输; - SameSite:控制跨站请求是否携带Cookie。
SameSite策略类型对比
策略跨站请求携带Cookie适用场景
Strict否高安全需求,如支付页面
Lax仅限GET方法导航通用网页应用
None是(需Secure)嵌入式第三方内容

2.4 利用 Cookie 实现用户状态持久化

HTTP 是无状态协议,服务器无法天然识别用户会话。Cookie 机制通过在客户端存储标识信息,实现用户状态的跨请求保持。
Cookie 工作原理
服务器通过响应头 Set-Cookie 向浏览器发送数据,浏览器将其保存并在后续请求中通过 Cookie 请求头自动回传。
Set-Cookie: session_id=abc123; Path=/; HttpOnly; Secure; SameSite=Strict
该指令设置名为 session_id 的 Cookie,值为 abc123,仅可通过 HTTPS 传输(Secure),禁止 JavaScript 访问(HttpOnly),并限制跨站请求(SameSite=Strict),提升安全性。
常见属性说明
  • Path=/:指定 Cookie 作用路径
  • Expires:设置过期时间,实现持久存储
  • Domain:定义可接收 Cookie 的域名范围

2.5 替代方案萌芽:从 Cookie 到 Web Storage

随着 Web 应用复杂度提升,Cookie 在存储能力与安全性上的局限日益凸显。其每次请求携带的特性导致性能损耗,最大 4KB 的容量也难以满足需求。
Web Storage 的引入
HTML5 引入了 localStorage 和 sessionStorage,提供更高效、易用的客户端存储方案。数据不再自动发送至服务器,有效减少网络开销。

// 存储用户偏好
localStorage.setItem('theme', 'dark');
// 读取
const theme = localStorage.getItem('theme');
// 删除
localStorage.removeItem('theme');
上述代码展示了 localStorage 的基本操作,数据持久化保存,除非手动清除。而 sessionStorage 仅在会话期间有效。
主要特性对比
特性CookieWeb Storage
容量~4KB~5-10MB
是否随请求发送是否
生命周期控制通过 Expires/Max-Age手动调用 remove 或 session 结束

第三章:Web Storage 的深入应用

3.1 localStorage 与 sessionStorage 核心差异

生命周期与作用域对比
localStorage 与 sessionStorage 均用于客户端数据存储,但核心差异体现在生命周期和作用域上。localStorage 数据持久化存储,除非手动清除,否则不会过期;sessionStorage 则在页面会话结束(如关闭标签页)后自动清除。
作用域行为差异
两者均遵循同源策略,但 sessionStorage 在不同标签页即使同源也相互隔离,而 localStorage 在同源的所有标签页中共享。
特性localStoragesessionStorage
数据生命周期持久存储仅限当前会话
跨标签页共享是否
// 存储数据示例
localStorage.setItem('user', 'Alice');
sessionStorage.setItem('token', 'abc123');

// 数据读取
console.log(localStorage.getItem('user'));   // 'Alice'
console.log(sessionStorage.getItem('token'));// 'abc123'
上述代码展示了两种存储方式的统一API接口,但底层行为因机制不同而影响实际应用策略。

3.2 数据存取实践与类型处理陷阱

在数据存取过程中,类型不匹配是常见隐患。尤其在动态语言中,隐式类型转换可能引发难以察觉的运行时错误。
常见类型陷阱示例

const userInput = "123";
const result = userInput * 2; // 输出:246(字符串转为数字)
const wrongResult = userInput + 2; // 输出:"1232"(字符串拼接)
上述代码中,* 触发了隐式类型转换,而 + 被解释为字符串拼接。这种行为差异易导致逻辑错误。
规避策略
  • 显式转换类型:parseInt(userInput) 或 Number(userInput)
  • 使用严格相等运算符:=== 避免类型 coercion
  • 在数据入库前进行 schema 校验

3.3 存储事件监听与跨标签页通信

在现代Web应用中,多个浏览器标签页之间的状态同步至关重要。通过监听`StorageEvent`,可以实现跨标签页的数据通信。
存储事件监听机制
当一个标签页修改`localStorage`时,同一源下的其他标签页会触发`storage`事件:
window.addEventListener('storage', (event) => {
  if (event.key === 'userToken') {
    if (event.newValue === null) {
      // 被删除,执行登出逻辑
      console.log('用户已从其他页面登出');
    } else {
      console.log('新token:', event.newValue);
    }
  }
});
上述代码监听`userToken`的变化,event对象包含key、oldValue、newValue和url等属性,可用于精确判断变更来源。
典型应用场景
  • 用户登录状态跨标签同步
  • 主题模式(暗色/亮色)实时更新
  • 单点登录退出通知

第四章:IndexedDB 大容量存储实战

4.1 IndexedDB 概念模型与事务机制

IndexedDB 是一种低级 API,用于在客户端存储大量结构化数据,支持异步数据访问,避免阻塞主线程。其核心概念包括数据库、对象仓库、索引和游标。
关键概念解析
  • 数据库(Database):每个 origin 可拥有一个或多个数据库,包含多个对象仓库。
  • 对象仓库(Object Store):类似于表,用于存储键值对数据。
  • 索引(Index):基于对象属性建立的查找路径,提升查询效率。
  • 事务(Transaction):所有操作必须在事务中执行,确保数据一致性。
事务模式
模式说明
readonly只读操作,允许多个并发事务
readwrite可读写,同一时间仅一个事务可写
const request = indexedDB.open("MyDB", 1);
request.onupgradeneeded = (event) => {
  const db = event.target.result;
  if (!db.objectStoreNames.contains("users")) {
    db.createObjectStore("users", { keyPath: "id" }); // 创建以 id 为主键的对象仓库
  }
};
该代码初始化数据库并创建名为 users 的对象仓库。onupgradeneeded 在版本变更时触发,是修改结构的唯一时机。keyPath 指定主键字段,确保每条记录唯一性。

4.2 使用原生 API 构建对象仓库

在构建轻量级对象存储系统时,原生 API 提供了对底层资源的精细控制。通过标准 HTTP 接口操作对象,可实现高效的增删改查逻辑。
核心接口设计
主要依赖 PUT、GET、DELETE 方法完成对象生命周期管理:
  • PUT:上传对象数据至指定键
  • GET:根据键读取对象内容
  • DELETE:删除指定键的对象
示例:使用 Go 实现对象写入
func PutObject(key string, data []byte) error {
    req, _ := http.NewRequest("PUT", "/objects/"+key, bytes.NewReader(data))
    req.Header.Set("Content-Type", "application/octet-stream")
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return err
    }
    defer resp.Body.Close()
    return nil
}
该函数封装了 PUT 请求,将字节流写入以 key 命名的对象中,Content-Type 设为二进制流类型,适用于任意数据存储。
元数据管理
字段用途
Content-Length对象大小校验
ETag内容一致性哈希值

4.3 封装通用数据库操作工具类

在构建高可维护的后端服务时,封装一个通用的数据库操作工具类是关键步骤。该类应屏蔽底层数据库驱动差异,提供统一的增删改查接口。
核心设计原则
  • 基于接口编程,解耦具体数据库实现
  • 支持链式调用,提升代码可读性
  • 内置日志与错误处理机制
示例代码:通用DAO基类
type BaseDAO struct {
    db *sql.DB
}

func (d *BaseDAO) Query(query string, args ...interface{}) (*sql.Rows, error) {
    rows, err := d.db.Query(query, args...)
    if err != nil {
        log.Printf("Query failed: %v", err)
    }
    return rows, err
}
上述代码定义了一个基础DAO结构体,封装了数据库连接实例和通用查询方法。参数query为SQL语句,args用于防止SQL注入,所有派生类可复用此逻辑。

4.4 离线场景下的数据同步策略

在离线应用场景中,设备可能长时间无法连接服务器,因此必须设计可靠的数据同步机制以保障数据一致性。
数据同步机制
采用基于时间戳的增量同步策略,客户端记录最后同步时间,并在恢复网络后上传本地变更。服务端通过对比时间戳合并数据。

// 客户端同步逻辑
async function syncData() {
  const lastSync = localStorage.getItem('lastSync');
  const localChanges = await db.getChangesSince(lastSync);
  
  const response = await fetch('/api/sync', {
    method: 'POST',
    body: JSON.stringify(localChanges)
  });

  if (response.ok) {
    localStorage.setItem('lastSync', new Date().toISOString());
  }
}
上述代码实现了一个基础同步流程:获取自上次同步以来的变更,并提交至服务端。成功响应后更新本地同步时间戳。
冲突处理策略
  • 客户端优先:保留终端最新操作
  • 服务端仲裁:由服务器判断数据有效性
  • 时间戳决胜:以高精度时间戳决定更新顺序

第五章:前端存储技术的未来趋势与选型建议

边缘计算与本地存储的融合
随着边缘计算架构的普及,前端应用需在离用户更近的位置处理和缓存数据。利用 Service Worker 结合 Cache API 和 IndexedDB,可在离线状态下提供完整功能体验。例如,一款野外作业的巡检应用通过预加载地图切片至 Cache API,并将表单数据持久化到 IndexedDB,实现无网络环境下的全流程操作。
Web Storage 的优化实践
尽管 localStorage 存在同步阻塞问题,但在轻量级场景中仍具价值。可通过封装异步代理层提升安全性与性能:
const asyncStorage = {
  set: (key, value) => Promise.resolve().then(() => {
    localStorage.setItem(key, JSON.stringify(value));
  }),
  get: (key) => Promise.resolve().then(() => {
    const item = localStorage.getItem(key);
    return item ? JSON.parse(item) : null;
  })
};
选型决策矩阵
根据应用场景选择合适的技术组合至关重要,以下为常见指标对比:
技术容量异步索引支持适用场景
localStorage~5MB否无简单配置存储
IndexedDB数百MB至GB是支持复杂结构化数据
Cache API依赖配额是URL索引资源缓存
隐私政策下的持久化策略
在 Safari 等限制第三方 Cookie 的浏览器中,应结合 Permissions Policy 与 Storage Manager 判断可用性:
  • 使用 navigator.storage.persist() 请求持久化权限
  • 通过 navigator.permissions.query({ name: 'background-sync' }) 预判同步能力
  • 降级方案:当 IndexedDB 不可用时,回退至内存缓存 + 服务器同步
spring boot 集成cas(一) 服务端搭建 简单点就是统一服务认证,多个系统一次登录。俗称单点登录。 阅读详情

相关推荐

【老生谈算法】可视化通道流中瞬时涡量场的算法实现与MATLAB源码分析——瞬时涡量场

本文旨在探讨可视化通道流中瞬时涡量场的方法,并通过MATLAB编程实现这一过程。涡量场作为描述流体旋涡强度和方向的重要物理量,对于理解复杂流体运动具有重要意义。本文首先介绍了涡量场的基本概念,随后详细阐述了从测量数据收集到涡量场可视化的完整流程,并给出了相应的MATLAB源码。通过实际运行该源码,我们展示了涡量场的可视化结果,并讨论了其在流动结构识别和动力学行为理解中的应用。关键词: 涡量场;流体运动;MATLAB;可视化;PIV一、引言。

m0_53407570的博客 1127

浏览器本地存储详解、 cookie、sessionStorage、localStorage、IndexedDB

服务器端可以使用 Set-Cookie 的响应头部来配置 cookie 信息。一条cookie 包括了5个属性值 expires、domain、path、secure、HttpOnly。其中 expires 指定了 cookie 失效的时间,domain 是域名、path是路径,domain 和 path 一起限制了 cookie 能够被哪些 url 访问。secure 规定了 cookie 只能在确保安全的情况下传输,HttpOnly 规定了这个 cookie 只能被服务器访问,不能使用 js 脚本访问。

liangzhenmeng的博客 6万+

Robosuite实战:通过Xbox手柄实现机械臂6-DoF精准控制的完整指南

本文详细介绍了如何通过Xbox手柄实现机械臂的6-DoF精准控制,结合Robosuite仿真环境与MuJoCo物理引擎,提供从环境配置到代码实现的完整指南。文章重点解析了手柄映射原理、核心控制代码以及数据采集优化技巧,帮助开发者高效完成机械臂控制任务。

weixin_29169505的博客 419

Javascript前端本地存储之localStorage、sessionStorage、cookie、indexedDB区别及使用

Javascript前端本地存储之localStorage、sessionStorage、cookie、indexedDB区别及使用

weixin_50367873的博客 1069

模电仿真软件:MultSim14.3下载与安装

在setup文件夹中,找到【Install.exe】文件,然后右键单击选择【以管理员身份运行】(这一步超级重要,否则可能会出现权限不足导致安装失败)!解压完成后,打开解压出来的文件夹,找到并进入【setup】文件夹(这一步很重要,不要进错文件夹)。4、在弹出的安装向导中,仔细阅读许可协议后,选择【我接受】,然后点击【下一步】继续安装过程。首先我们需要将下载好的安装包解压到本地文件夹,确保有足够的磁盘空间(建议至少5GB以上)!按照安装向导的提示,点击【下一步】继续(保持默认设置即可,除非你有特殊需求)

weixin_44264994的博客 2342

Wezterm的安装和简单配置

希望 wezterm 的主题配色,保持和 powershell 默认配色一致,也就是 Compell 主题。目的是在频繁使用 wezterm 时,原本的根据颜色判断文件信息(尤其是WSL里的Linux下,文件和目录颜色)依然可以使用。wezterm 默认用 cmd.exe, 我是 win11,希望默认用 powershell。

baiyu33的博客 4276

浏览器的四种本地存储方式-cookie,localStorage,sessionStorage,IndexedDB

浏览器的四种本地存储方式-cookie,localStorage,sessionStorage,IndexedDB

qq_44947815的博客 8290

TriCore架构-基于TC397的启动流程

TC397芯片的启动流程分为三个关键阶段:固件启动(BootFirmware)、Bootloader引导和应用程序启动。BootFirmware作为硬件信任根,包含SSW基础初始化、CHSW自检和BSL应急刷写通道。Bootloader承担安全验证和程序引导功能,支持双分区(AB-SWAP)和双引导方案(PBL/SBL)。安全启动通过校验机制确保软件完整性,提供三种可选技术方案。应用程序启动阶段实现软件双分区管理,支持SOTA更新。整个流程体现了汽车电子系统的安全设计理念,通过硬件级保护与软件验证相结合确保

xiandang8023的博客 987

本地存储——从 Cookie 到 Web Storage、IndexedDB

故事的开始:从 Cookie 说起 Cookie 的本职工作并非本地存储,而是“维持状态”。 在 Web 开发的早期,人们亟需解决的一个问题就是状态管理的问题:HTTP 协议是一个无状态协议,服务器接收客户端的请求,返回一个响应,故事到此就结束了,服务器并没有记录下关于客户端的任何信息。那么下次请求的时候,如何让服务器知道“我是我”呢? 在这样的背景下,Cookie 应运而生。 Cooki...

qq867263657的博客 329

QGIS004:【05矢量属性表】-保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段

摘要:QGIS矢量属性表工具箱包括保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段等选项,本文介绍各选项的基本操作。

qq_31762031的博客 2312

【Python爬虫(90)】以Python爬虫为眼,洞察金融科技监管风云

本文聚焦爬虫技术在金融科技监管中的应用。开篇阐述金融科技发展带来监管挑战,引出爬虫技术的重要性。接着介绍金融科技监管政策与合规要求,包括政策法规体系、合规细则及政策变化应对。随后探讨爬虫技术选型、数据监测策略、风险指标抓取及案例实操。还阐述基于爬虫数据构建风险预警与防控机制,含模型构建、阈值设定等。最后总结爬虫技术应用成果,展望其与人工智能融合、适应新监管需求及重视数据安全的未来发展趋势。

邓邓子的博客 1063

JavaScript的本地存储知识点详解Cookie、SessionStorage、LocalStorage、IndexedDB

JavaScript的本地存储方式多种多样,每种方式都有其特定的应用场景和优缺点。开发者在选择存储方式时,应根据数据的特性(如生命周期、大小、共享范围)以及应用的需求来选择合适的存储方案。通过合理使用本地存储,可以显著提高应用的性能和用户体验。在实际开发中,还需要注意以下几点:数据安全性:对于敏感数据,应使用加密手段进行保护,避免数据泄露。数据一致性:在并发访问时,应确保数据的一致性和完整性,避免数据冲突或丢失。性能优化:对于大量数据的存储和读取,应使用高效的数据结构和算法,提高性能。

谢谢你的关注 983

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【前端知识之JS】JS本地存储

本系列主要整理前端面试中需要掌握的知识点。本节介绍本地存储的四种方式,以及他们的比较和应用。

weixin_44337386的博客 8936

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

前端本地存储技术(LocalStorage、SessionStorage、IndexedDB)与Cookie的核心差异

本文对比了前端本地存储技术(LocalStorage、SessionStorage、IndexedDB)与Cookie的核心差异,包括存储容量、数据生命周期、API设计等。通过实际应用场景分析,探讨如何选择合适的技术方案,并针对复杂需求提供高级拓展方案(如数据加密、性能优化)。文章遵循MD规范,代码与公式格式严格统一。

Myron的博客 7926

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

前端本地存储数据:深入解析与代码示例(Cookie、LocalStorage、SessionStorage和IndexedDB)

在现代Web应用中,前端本地存储是实现用户个性化体验的关键技术。本文将深入探讨前端本地存储的四种主要技术:Cookie、LocalStorage、SessionStorage和IndexedDB,并提供具体的代码示例。

qq_44977477的博客 587

Javascript 本地存储:cookie、sessionStorage、localStorage、indexedDB

同时独立的打开同一个窗口同一个页面,sessionStorage 也是不一样的(不同浏览器、同一个页面也是不共享的)。虽然 Web Storage对于存储较少量的数据很有用,但对于存储更大量的结构化数据来说,这种方法不太有用。的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制 cookie有效期、安全性、使用范围的可选属性组成。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

猫老板的豆 1201

cookie本地存储

本地存储 所谓的本地存储,其实就是把一些信息,存储到客户端版本地,存储的信息不会因为页面的跳转或关闭而消失,这样就可以实现很多功能需求了。  特点 虽然是存储到本地了,但是有浏览器中间的访问限制,例如:谷歌下存储的信息在IE中访问不到 还会存在域名和域名之间的访问限制,例如:在谷歌下访问京东,存储了京东的客户信息,当我们用谷歌浏览器打开了百度,百度是无法获取原来在京东下存储的本地信息的

天空永远蔚蓝的博客 3933

浏览器本地存储(cookie,web Storage API,indexedDB)

Cookie: 存储在客户端的小型文本文件,用于会话管理和用户偏好设置。属性名称和值: 唯一标识符和数据。路径: 指定Cookie的发送路径。域: 指定Cookie的发送域名。过期时间: 指定Cookie的过期时间。安全标志: 控制Cookie的发送协议。HttpOnly 标志: 防止 JavaScript 访问Cookie。SameSite 标志: 控制Cookie的跨站发送行为。设置和发送: 通过Set-Cookie响应头设置Cookie,浏览器自动在请求中发送符合条件的Cookie。

z142536x的博客 1258

vue cookie和本地存储的使用

在Vue中,可以使用多种方式来处理cookie和本地存储对于cookie和本地存储,不同的方法有不同的特点和适用场景。下面是这些方法的对比和使用场景:对比cookie的方法:使用js-cookie库:使用js-cookie库可以简化cookie的设置、获取和删除操作。适用于需要频繁操作cookie的场景,例如用户认证、跟踪用户行为等。使用原生JavaScript:原生JavaScript提供了对cookie的基本操作方法。适用于简单的cookie操作,不需要引入额外的库。

一步一个脚印,踏实努力,向着目标前进 3311

前端本地存储

需要与服务器交互(如登录状态)→ 用Cookie(或配合 Session)。前端永久存储(如用户偏好、历史记录)→ 用。前端临时存储(如表单草稿、页面间临时数据)→ 用。存储大量数据 / 二进制数据(如离线缓存、大文件)→ 用。

2301_81157366的博客 1348

前端三种本地存储方式+indexedDB浏览器数据库存储

1.cookie存储: 特征: 1.不同的浏览器存放的cookie位置不一样,也是不能通用的。 2.cookie的存储是以域名形式进行区分的,不同的域下存储的cookie是独立的。 3.我们可以设置cookie生效的域(当前设置cookie所在域的子域),也就是说,我们能够操作的cookie是当前域以及当前域下的所有子域 4.一个域名下存放的cookie的个数是...

mister、奎 3624

前端数据存储全解析:localStorage、sessionStorage 与 Cookie

Cookie 是服务器发送到用户浏览器并保存的小段文本,它会在浏览器下次向同一服务器发起请求时被携带并发送到服务器上。会话状态管理:如用户登录状态、购物车内容、游戏分数等需要记录的信息个性化设置:如用户自定义设置、主题等浏览器行为跟踪:如跟踪分析用户行为、广告投放等对于更复杂的数据存储需求,Web Storage API 和 Cookie 可能不足以满足。IndexedDB 提供了一个完整的客户端数据库解决方案:支持存储大量结构化数据支持索引和事务支持复杂查询和游标支持二进制数据(如文件、图像)

m0_74037439的博客 9225

前端本地存储数据库存储之IndexedDB

IndexedDB数据库没有我们想象的那么复杂,了解了它的几个基本概念,上手还是很快的,无非就是增删改查等等,虽然可能开发中用的少,但是了解一下不至于真正用到的时候两眼抓瞎。

nihaio25的博客 2995

前端本地存储方案详解

本文对比分析了三种前端本地存储方案:Cookie、Web Storage(LocalStorage/SessionStorage)和IndexedDB。Cookie是最早的方案,容量小且随请求自动发送;Web Storage提供简单的键值存储,LocalStorage持久化而SessionStorage会话级存储;IndexedDB适合大量结构化数据,支持事务操作。文中提供了各方案的典型代码实现,包括Cookie管理类、Web Storage封装工具以及IndexedDB的完整CRUD操作示例。

qq_33254736的博客 958

【前端面试系列】Web 本地存储全面详解

本地存储是前端开发中常用的技术,用于在客户端存储数据。本文将详细介绍Javascript本地存储的方式、区别及应用场景,帮助您在面试中更好地理解和应用这些技术。

徐白知识星球 1364

前端存储技术Cookie,Storage,IndexedDB

转自前端存储技术 前言后端常用数据库做数据存储,譬如MySql、MongoDB,缓存技术存储数据,如Redis、Memcached;前端存储数据目前常用的是Cookie、Storage、IndexedDBCookieHTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。...

weixin_33872660的博客 216
上一篇: 【前端框架对比终极指南】:2024年Top 5框架性能实测与选型建议
下一篇: 【前端性能监控避坑指南】:10年架构师总结的8大常见误区与应对策略
SimCompile
博客等级 码龄1年 140粉丝 2012原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值