cookie,localStorage 和 sessionStorage的区别?
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密),会随着在http请求时被发送到服务端,在浏览器和服务器间来回传递,只能document.cookie = '...' 来修改。
localStorage 和 sessionStorage不会随着http请求被发送出去,仅在本地保存。
存储大小:
-
cookie数据大小不能超过4k; -
localStorage和sessionStorage虽然也有存储大小的限制,可以达到5M或更大;
有期时间:
-
cookie在设置的过期时间之前一直有效,即使窗口或浏览器关闭; -
localStorage存储持久数据,没有时间限制的数据存储,浏览器关闭后数据不丢失除非主动删除数据; -
sessionStorage针对一个 session 的数据存储, 数据在当前浏览器窗口关闭后自动删除;
localStorage 和 sessionStorage使用的API相同,常用的有如下几个(以localStorage为例):
-
保存数据:
localStorage.setItem(key,value); -
读取数据:
localStorage.getItem(key); -
删除单个数据:
localStorage.removeItem(key); -
删除所有数据:
localStorage.clear(); -
得到某个索引的key:
localStorage.key(index);