localStorage、sessionStorage和Cookie的区别如下:
1. 存储大小
- localStorage:通常为5MB,容量较大,适合存储持久化数据。
- sessionStorage:同样为5MB,但仅在当前会话有效。
- Cookie:仅4KB左右,容量最小,适合存储少量标识信息(如会话ID)。
2. 有效期
- localStorage:数据永久有效,除非手动清除或通过代码删除。
- sessionStorage:仅在当前浏览器标签页或窗口关闭前有效,刷新页面不会清除。
- Cookie:有效期由开发者设置(如会话级或固定时间),过期后自动失效。
3. 服务器通信
- localStorage和sessionStorage:纯前端存储,不参与HTTP请求,不会与服务器交互。
- Cookie:默认随HTTP请求自动发送到服务器,可能影响性能(尤其数据量大时)。
4. 作用域与共享规则
- localStorage:同域名、同端口的不同页面可共享数据,但不同浏览器无法共享。
- sessionStorage:仅限同一标签页/窗口共享,不同标签页或浏览器无法访问。
- Cookie:同域名下所有页面可访问,但受路径(path)和域名(domain)限制。
5. 典型应用场景
- localStorage:适合存储用户偏好、离线数据等(如购物车内容)。
- sessionStorage:适合临时保存表单数据或页面状态(如多步骤表单)。
- Cookie:常用于身份验证(如Token)、会话跟踪(需配合安全策略)。
6. 安全性
- Cookie:易受XSS攻击(需设置HttpOnly属性),不适合存储敏感信息。
- localStorage/sessionStorage:仅前端可控,但需防范XSS注入风险。
总结:根据需求选择存储方式——持久化数据用localStorage,临时会话用sessionStorage,身份标识用Cookie(需注意安全限制)。