Local Storage vs Cookies
Local Storage vs Cookies
技术背景
在前端开发中,数据存储是一个常见需求。Cookies 和 Local Storage 是两种不同的数据存储方式。Cookies 是一种古老的存储方式,主要用于服务器端读取数据;而 Local Storage 是 HTML5 引入的新特性,只能由客户端(JavaScript)读取。了解它们的特点和适用场景,有助于开发者选择合适的存储方式。
实现步骤
检查 Local Storage 支持
1 |
|
使用 Local Storage
1 |
|
使用 Cookies
1 |
|
核心代码
上述代码中已经展示了 Local Storage 和 Cookies 的基本使用方法,包括设置、获取和删除数据。
最佳实践
- 使用场景选择:
- 如果数据仅需客户端使用,建议使用 Local Storage,避免在每个 HTTP 请求中发送数据,浪费带宽。
- 如果服务器需要数据,可使用 Cookies,但要注意其大小限制和安全性问题。
- 对于敏感数据,建议使用 Cookies,并设置 HttpOnly 和 Secure 标志;对于非敏感数据,可使用 Local Storage。
- 安全性考虑:
- 为防止 XSS 攻击,对 Local Storage 要谨慎处理,避免存储敏感信息;对 Cookies 设置 HttpOnly 标志。
- 为防止 CSRF 攻击,对 Cookies 设置 SameSite 标志;对于不支持 SameSite 的浏览器,可使用同步令牌模式。
常见问题
存储容量问题
- Local Storage:每个域名通常有 5MB 左右的存储容量。
- Cookies:每个 Cookie 最大容量为 4KB 左右。
浏览器兼容性问题
- Local Storage:不支持 IE 8 及以下、Firefox 3.5 及以下、Safari 4 及以下、Chrome 4 及以下、Opera 10.5 及以下、iOS 2.0 及以下、Android 2.0 及以下的浏览器。
- Cookies:所有主流浏览器都支持。
安全性问题
- Local Storage:易受 XSS 攻击,且难以简单防范。
- Cookies:易受 XSS 和 CSRF 攻击,但可通过设置标志进行防范。
有效期问题
- Local Storage:数据无过期日期,除非通过 JavaScript 或清除浏览器缓存删除。
- Cookies:可设置过期日期,过期后自动删除。
协议切换问题
在从 http
切换到 https
安全协议时,Local Storage 可能不可用,而 Cookies 仍可访问。
隐私模式问题
在某些版本的移动 Safari 隐私模式下,无法使用 Local Storage。
Local Storage vs Cookies
https://119291.xyz/posts/local-storage-vs-cookies/