JavaScript本地存储主要靠Cookie和localStorage实现:Cookie随HTTP请求自动收发,容量小、可设过期时间、支持HttpOnly;localStorage纯客户端存储、容量大、永久保存、无自动传输、不支持过期机制。
JavaScript 中的本地存储主要靠 Cookie 和 localStorage 实现,但它们设计目标、使用方式和限制完全不同。简单说:Cookie 是为“通信”服务的,会随 HTTP 请求自动发送;localStorage 是为“前端数据缓存”服务的,纯客户端保存,不参与网络传输。
Cookie 是服务器通过 Set-Cookie 响应头写入浏览器的小文本片段,后续同域请求时浏览器自动附在 Cookie 请求头中发回。它天生和 HTTP 协议绑定。
Expires 或 Max-Age 变成持久 CookiePath)、域名(Domain)、安全标记(Secure)、HttpOnly 等属性document.cookie 是一个字符串接口,读写都需手动解析,比如:document.cookie = "user=abc; expires=Fri, 31 Dec 2027 23:59:59 GMT; path=/;"HttpOnly,JS 可读写,有 XSS 泄露风险localStorage 是 Web Storage API 的一部分,完全由 JavaScript 控制,数据仅存在浏览器本地,不会随任何 HTTP 请求发送。
localStorage.removeItem() 或 localStorage.clear()),否则一直存在JSON.stringify(),取时用 JSON.parse()
localStorage.setItem("key", "value")、localStorage.getItem("key")、localStorage.removeItem("key")
Domai
n 和 Path 精细控制;localStorage 只看完整同源HttpOnly 防 XSS 读取;localStorage 全靠前端逻辑防护,XSS 下极易被窃取顺带提一下 sessionStorage:它和 localStorage 接口一致,但数据只在当前浏览器标签页生命周期内有效,关闭标签即清空。适合临时状态,比如多步骤表单的中间数据。