浏览器存储 Cookie,Local Storage和Session Storage

什么是Cookie?

  • 存储容量:一般限制在 4KB 以内。

  • 数据有效期:可以设置过期时间,若未设置,则在浏览器关闭时失效。

  • 数据共享 :在同一域名下,不同页面可以共享cookie数据。并且在每次 HTTP 请求时,cookie会被发送到服务器端。

  • 数据存储和读取 :需要手动解析和设置document.cookie字符串。

  • 在HTTP明文传输中不够安全,容易被修改。

  • 每次请求都会携带Cookie数据增加流量浪费性能。

  • 示例代码:

    // 存储数据
    document.cookie = 'name=daxiaojiuhenpi; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/';
    // 读取数据
    function getCookie(name) {
    const value = ; ${document.cookie};
    const parts = value.split(; ${name}=);
    if (parts.length === 2) return parts.pop().split(';').shift();
    }
    const name = getCookie('name');
    console.log(name);

什么是Local Storage?

  • 存储容量:一般为 5MB 左右,不同浏览器可能存在差异。

  • 数据有效期:除非手动删除,否则数据不会过期,会一直存储在浏览器中。

  • 数据共享 :在同一域名下,不同页面可以共享localStorage数据。

  • 数据存储和读取 :使用setItem方法存储数据,getItem方法读取数据。

  • 不支持在不同浏览器共享数据。

  • 一网站只能访问自己域下的LS。

  • 示例代码:

    // 存储数据
    localStorage.setItem('username', '打小就很皮');
    // 读取数据
    const username = localStorage.getItem('username');
    console.log(username);

什么是Session Storage?

  • 存储容量 :与localStorage类似,通常为 5MB 左右。

  • 数据有效期:数据仅在当前会话期间有效,当页面关闭后,数据会被清除。

  • 数据共享:仅在同一窗口(或标签页)的不同页面间共享数据,不同窗口(或标签页)的数据是相互独立的。

  • 数据存储和读取 :使用setItem方法存储数据,getItem方法读取数据。

  • 示例代码

    // 存储数据
    sessionStorage.setItem('token', 'DGBjbjbg35bhjbuydsatdgry3bd8t');
    // 读取数据
    const token = sessionStorage.getItem('token');
    console.log(token);

差异总结:不同点

Cookie Local Storage Session Storage
存储内容是否发送到服务端 每请求都发回 只保存在本地
数据存储大小 不超过4KB 达到5MB
数据存储有效期 自行设置失效时间 永久有效 关闭浏览器前有效
作用域 同源同窗口都是共享 不同窗口不共享
相关推荐
li357420 小时前
将已有 Vue 项目通过 Electron 打包为桌面客户端的完整步骤
前端·vue.js·electron
Icoolkj20 小时前
VuePress 与 VitePress 深度对比:特性、差异与选型指南
前端·javascript·vue.js
MAGICIAN...21 小时前
【Redis】--持久化机制
数据库·redis·缓存
excel21 小时前
CNN 分层详解:卷积、池化到全连接的作用与原理
前端
我真的是大笨蛋21 小时前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
excel21 小时前
CNN 多层设计详解:从边缘到高级特征的逐层学习
前端
西陵1 天前
Nx带来极致的前端开发体验——任务编排
前端·javascript·架构
大前端helloworld1 天前
从初中级如何迈入中高级-其实技术只是“入门卷”
前端·面试
东风西巷1 天前
Balabolka:免费高效的文字转语音软件
前端·人工智能·学习·语音识别·软件需求