三者共同点: 都保存在浏览器端,且同源的。
区别:
1、通信不一样,cookie可以在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
2、存储大小限制不同,cookie数据不能超过4k,sessionStorage和localStorage 但比cookie大得多,可以达到5M。
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面(即数据不共享);localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的(即数据共享)。
应用场景
- cookie:实现登录状态的保存及判定,比如下次自动登录或记住密码;保存事件信息等
- sessionStorage:敏感账号一次性登录;单页面用的较多(sessionStorage 可以保证打开页面时 sessionStorage 的数据为空)
- localStorage:常用于长期登录(判断用户是否已登录),适合长期保存在本地的数据