本质区别在于设计目的和运行机制不同:cookie是http协议一部分,自动收发于请求响应头,用于服务端会话识别;web storage是纯客户端api,不参与网络通信,专为前端状态管理设计。

本质区别不在“能不能存数据”,而在于设计目的和运行机制完全不同:Cookie 是为HTTP 通信服务的,Web Storage 是为前端状态管理服务的。
核心定位不同
Cookie 本质是 HTTP 协议的一部分,由浏览器自动在请求头(Cookie:)和响应头(Set-Cookie:)中收发,服务端靠它识别用户、维持会话;Web Storage(localStorage/sessionStorage)是纯客户端 API,不参与任何网络通信,只供 JavaScript 主动读写,浏览器不会把它塞进任何请求里。
容量与传输行为截然相反
Cookie 单域名总容量约 4KB,且每次同源请求(哪怕只是加载一张图标)都会完整携带,造成冗余带宽消耗;Web Storage 容量通常为 5–10MB,数据始终留在本地内存或磁盘,零网络传输开销。
- 存一个 200KB 的用户设置 JSON?Cookie 会失败或静默截断;localStorage 可轻松写入
- 发起 100 次图片请求?Cookie 重复发送 100 次;Web Storage 数据一次也不出浏览器
作用域与生命周期控制逻辑不同
Cookie 的作用域由 Domain、Path、Secure、SameSite 等属性定义,支持跨子域共享(如 .example.com)或路径限定(如 /admin);Web Storage 严格按协议 + 域名 + 端口三元组隔离,不支持跨域,也不支持路径级划分。
- 同一域名下所有标签页共享 localStorage;每个标签页的 sessionStorage 相互独立
- Cookie 可设 Max-Age 或 expires 自动过期;localStorage 永不过期,sessionStorage 关闭标签页即清空——没有内置时间策略,需手动存时间戳并校验
安全性机制不可替代
Cookie 可设 HttpOnly(阻止 JS 访问)、Secure(仅 HTTPS 传输)、SameSite=Lax/Strict(缓解 CSRF),这些是服务端可强制执行的防护层;Web Storage 完全暴露在 JS 环境中,一旦页面存在 XSS 漏洞,其中存储的 token 或敏感配置极易被窃取,无法通过属性限制访问。
- 存 access_token?优先用 HttpOnly Cookie;若必须用 Web Storage,应只存加密后的 refresh_token,并配合严密的 XSS 防御
- 鉴权时后端依赖请求头中的凭证?Cookie 自动送达;localStorage 中的数据必须由前端在每次 fetch / axios 请求前手动读取、拼接到 Authorization 或自定义 header 中
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











