localstorage、sessionstorage和cookie的区别
-
基本概念
cookie:主要用于保存登陆信息,比如登陆某个网站市场可以看到’记住密码’,这就是通过在cookie中存入一段辨别用户身份的数据来实现的。
sessionStorage:会话,是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但是页面关闭后,sessionStorage中的数据就会被清空。
localStorage:本地存储,早在IE6时代就有一个userData的东西用于本地存储,而当时考虑到浏览器的兼容性,更通用的方案是使用flash。如今localStorage被大多数浏览器所支持。 -
生命周期
cookie:可以通过expires设置失效时间,不设置默认关闭浏览器即失效。
localStorage:除非手动清除,否则永久保存。
sessionStorage:仅在当前会话时候生效,关闭页面即失效。 -
存储大小
cookie:4KB左右
localStorage、sessionStorage:可以保存5M的信息 -
HTTP请求
cookie:每次都会携带在http头中,过多使用cookie会带来性能问题。
localStorage、sessionStorage:仅在浏览器中保存,不参与和服务器的通信。 -
作用域
cookie:在所有同源窗口中都是共享的
sessionStorage:在同一个浏览器窗口是共享的
localStorage:在所有同源窗口中都是共享的 -
易用性
cookie:需要程序员自己封装,源生的Cookie接口不友好。
localStorage、sessionStorage:源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。 -
应用场景
cookie:判断用户是否登录过网站,以便实现下次自动登录或记住密码;保存事件信息等。
sessionStorage:敏感账号一次性登录;单页面用的较多(sessionStorage 可以保证打开页面时 sessionStorage 的数据为空)。
localStorage:适合长期保存在本地的数据。