摘要:是的,前端在域名、端口、协议都相同的情况下,本地缓存(localStorage、sessionStorage、Cookie 等)是可以共享的,具体如下:
是的,前端在域名、端口、协议都相同的情况下,本地缓存(localStorage、sessionStorage、Cookie 等)是可以共享的,具体如下:
缓存类型是否共享的条件localStorage协议 + 域名 + 端口完全一致时可共享sessionStorage只在当前标签页或 iframe 会话中共享Cookie取决于 domain 和 path,协议端口也需一致IndexedDB也依赖于同源策略(协议、域名、端口都一致)这两个页面:
都是 http都是 localhost都是 3000 端口✅ 那么它们的 localStorage 和 cookie 是可以共享的。
❌ 但 sessionStorage 是不共享的,除非它们在同一个标签页或 iframe 中打开。
如果其中任一项不同,例如:
协议不同(http vs https)域名不同(localhost vs 127.0.0.1)端口不同(3000 vs 3001)➡️ 就会构成跨源(Cross-Origin),缓存就无法共享。
如果你想共享缓存,但域名或端口不同,可以考虑以下解决方案:
使用统一的反向代理(如 Nginx)统一域名和端口。使用跨窗口通信(如 postMessage)传递数据。设置跨子域的 Cookie(设置 document.domain 或使用 SameSite 配置)。需要具体应用场景我可以进一步建议方案。你当前是否在做多页面/多系统共享缓存的需求?
来源:小康科技观