简要回答
共同点:
- 都保存在浏览器端,都是同源的。
区别:
-
cookie数据始终在同源的http请求中携带,而webStorage不会在请求中请求,仅仅在本地存储;
-
存储大小区别, cookie是最大长度4K,webStorage可以达到5M甚至更大,indexedDB无限制;
-
数据有效时间区别, sessionStorage 仅仅是会话级别的存储,它只在当前浏览器关闭前有效,不能持久保持;localStorage 始终有效,即使窗口或浏览器关闭也一直有效,除非用户手动删除,其才会失效;cookie 只在设置的 cookie 过期时间之前一直有效,indexedDB持久存储;
-
作用域区别:sessionStorage不能在不同的浏览器窗口中共享,即使是同一个页面;localStorage、cookie和indexedDB在所有同源窗口都是共享的;
-
webStorage支持事件通知机制,可以将数据更新的通知发送给监听者。api的接口使用更方便。
-
indexedDB支持事务。