新闻中心

HTML如何操作本地存储_Cookie与WebAPI应用【指南】

2025-12-13
浏览次数:
返回列表
Cookie和Web Storage(localStorage、sessionStorage)是浏览器中保存用户数据的两种机制,分别适用于有有效期限制、持久化存储和会话级临时存储场景,且在生命周期、作用域及安全性上各具特点。

html如何操作本地存储_cookie与webapi应用【指南】

如果您希望在网页中保存用户偏好、登录状态等少量数据,浏览器提供了 Cookie 和 Web Storage(localStorage 与 sessionStorage)两种主流机制。它们在生命周期、作用域和操作方式上存在显著差异。以下是针对 HTML 环境下操作本地存储的实用方法:

一、使用 document.cookie 设置与读取 Cookie

Cookie 是由服务器通过 Set-Cookie 响应头写入,也可由 J*aScript 在客户端直接设置,但需注意其大小限制(通常 4KB)、作用域约束及默认不支持 HTTP-only 标志的客户端写入特性。

1、设置一个有效期为 7 天的 Cookie:
document.cookie = "username=JohnDoe; expires=" + new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toUTCString() + "; path=/";

2、读取所有 Cookie 字符串:
const allCookies = document.cookie;

3、解析指定 Cookie 名称的值(需手动分割):
const cookies = document.cookie.split("; ").reduce((acc, pair) => { const [key, value] = pair.split("="); acc[key] = decodeURIComponent(value); return acc; }, {});
const username = cookies.username;

二、使用 localStorage 持久化保存键值对

localStorage 提供无过期时间的本地键值存储,数据在关闭浏览器后仍保留,且仅限同源页面访问,容量通常为 5–10MB。

1、保存字符串数据:
localStorage.setItem("theme", "dark");

2、读取已保存的值:
const currentTheme = localStorage.getItem("theme");

3、删除特定键:
localStorage.removeItem("theme");

4、清空全部数据:
localStorage.clear();

三、使用 sessionStorage 保存会话级数据

sessionStorage 的数据仅在当前浏览器标签页生命周期内有效,关闭标签页即自动清除,适用于临时表单草稿、导航状态等场景。

拾贝 拾贝

一键同步微信读书所有笔记和划线,并在新标签页回顾

拾贝 186 查看详情 拾贝

1、写入会话数据:
sessionStorage.setItem("draftContent", "未完成的编辑内容");

2、读取会话数据:
const draft = sessionStorage.getItem("draftContent");

3、检查某键是否存在:
if (sessionStorage.key(0) !== null) { /* 至少有一个键 */ }

四、监听 storage 事件实现跨标签页通信

当同一源下的其他窗口或标签页修改 localStorage 或 sessionStorage 时,当前页面可通过 window.addEventListener("storage") 接收变更通知,但注意:触发事件的页面自身不会收到该事件。

1、添加 storage 监听器:
window.addEventListener("storage", (event) => { console.log("键名:" + event.key); console.log("旧值:" + event.oldValue); console.log("新值:" + event.newValue); console.log("来源页面 URL:" + event.url); });

2、确保事件监听在页面加载后立即注册:
document.addEventListener("DOMContentLoaded", () => { window.addEventListener("storage", handleStorageChange); });

五、安全操作 Cookie 的注意事项

直接通过 J*aScript 操作 Cookie 存在 XSS 风险,尤其当 Cookie 包含敏感信息时。应避免设置 document.cookie = "auth_token=xxx" 类型的明文凭证;若必须使用,应配合 HttpOnly=false 显式声明,并确保服务端始终校验签名与时效性。

1、禁止将密码、JWT 全量令牌存入可被 JS 访问的 Cookie:
应优先使用 HttpOnly Cookie 传输认证凭据,前端仅通过 API 调用间接使用。

2、设置 Secure 标志防止非 HTTPS 传输:
document.cookie = "session_id=abc123; Secure; SameSite=Lax";

3、限制作用域以减少泄露面:
document.cookie = "cart_items=[1,2,3]; path=/shop; domain=example.com";

以上就是HTML如何操作本地存储_Cookie与WebAPI应用【指南】的详细内容,更多请关注其它相关文章!


# 客户端  # 建设工程价格查询网站  # 如何将网站推广比较好  # 内江市营销短视频推广平台  # 长岭seo网站推广  # 直销网站建设方案  # 渭南网站建设流程有哪些  # 南昌seo优化分析  # 泰州网站优化设计公司  # 灵通网站建设推广策略研究  # 大学论文网站建设  # 是由  # 如何在  # 模态  # 如果您  # 上传  # javascript  # 键值  # 适用于  # 两种  # 拾贝  # 持久化  # 作用域  # win  # ai  # session  # 浏览器  # cookie  # 前端  # js  # html  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: qq音乐在线播放入口_qq音乐电脑版登录链接  黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】  C#中解析不规范的HTML为XML 常见的坑与解决办法  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  微博网页版直接访问 微博网页版账号管理快速入口  iwriter统一登录平台 iwrite账号密码登录页面  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  Go语言中对Map值调用带指针接收者方法:原理与最佳实践  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  Win11怎么开启省电模式_Win11电池节电模式自动开启  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  如何使 Jest 模拟函数默认抛出错误以提高测试效率  在Pyomo中实现基于变量的条件约束:Big-M方法详解  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  如何在 Excel Online 和 Google 表格中更改日期格式  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  深入理解Promise链:如何在catch后中断then的执行  poki网页游戏推荐_poki免费游戏平台入口  抖音创作助手登录入口_抖音创作辅助工具官网直达  AO3访问入口汇总 AO3网页版同人作品一键直达  vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法  谷歌google账号注册详细步骤 谷歌账号注册官方教程  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  如何使用纯J*aScript判断Input元素是否在特定类容器内  c++如何使用TBB库进行任务并行_c++ Intel线程构建模块  excel怎么制作工资条 excel快速生成工资条的方法  J*a应用集成GitHub CLI与API认证指南  解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException  b站怎么删除评论_b站评论管理与删除操作  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  C++如何生成随机数_C++ random库使用方法与范围设置  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  c++ dfs和bfs代码 c++深度广度优先搜索算法  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全  Python实时数据流中的动态最值查找策略  c++项目目录结构应该如何组织_c++工程化项目结构规范  深入理解J*a链表中的IPosition接口与使用  Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】  outlook中文官网入口地址 outlook官方中文版直达首页链接  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  小红书网页版入口链接分享 小红书官网直接进  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  Go语言中的*string:深入理解字符串指针  PHP 枚举:根据字符串获取枚举案例的策略与实现 

搜索