localStorage、sessionStorage和cookie三者都是为了在客户端保存数据的且都是以字符串格式存储的。下面来说下三者的一个不同之处:
-
cookie:数据存储,跨页面通讯;
数据每次都会发送给服务端;
前后端都可以操作;
cookie的默认是会话级别的有效期,即页面打开到页面关闭;但可以手动设置过期时间;
只要cookie里面有数据,请求的时候都会自动携带;
存储大小:4KB左右,受IE的限制 -
localStorage:存储数据,跨页面通讯;
不会与服务器端通讯,相对与cookie较安全,不用担心数据被截获;
只能有前端操作,后端操作不了;
存储的时效性是永久的,但是可以手动删除;
不管有没有数据,请求的时候都不会自动携带;
存储大小:5M左右 -
sessionStorage:存储数据;
仅在当前会话下有效。sessionStorage引入了“浏览器窗口”的概念。sessionStorage是在同源的窗口中始终保存存在的数据。只要这个浏览器窗口关闭后就会被销毁;
存储大小:5M左右;
不会与服务器端通讯,相对与cookie较安全,不用担心数据被截获;
也可以简单的理解为sessionStorage是没有设置有效期的cookie,cookie的有效期设置为永久,就是localStorage。