讲到数据存贮,通常有cookie、sessionStorage、localStorage、Web Storage
cookie
只适合保存很小的数据,不能超过4k;
cookie数据始终在同源的http请求中携带,即cookie在浏览器和服务器之间来回传递
只在设置的cookie过时时间以前一直有效,即便窗口或浏览器关闭
cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下。
在全部同源窗口中都是共享的
sessionStorage
仅在当前浏览器窗口关闭前有效,
仅在本地存储
不在不一样的浏览器窗口中共享,即便是同一个页面
localStorage
永久存储,永不失效,除非手动删除
在全部同源窗口中都是共享的
Web Storage
概念和cookie类似,区别是它是为了更大容量存储设计的。
拥有setItem,getItem,removeItem,clear等方法,不像cookie须要前端开发者本身封装setCookie,getCookie。
总结
Cookie的做用是与服务器进行交互,做为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生。
sessionStorage不在不一样的浏览器窗口共享,即便是同一个页面
localStorage和cookies是在全部同源窗口中共享的
适用状况:
Web Storage的概念和cookie类似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,而且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还须要指定做用域,不能够跨域调用。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问而且当会话结束后数据也随之销毁。所以sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储
cookies数据始终在同源的http请求中携带(即便不须要),适合保存很小的数据
本地存储:只有本地浏览器端可访问数据,服务器不能访问本地存储直到故意经过POST或者GET的通道发送到服务器;每一个域5MB;没有过时数据,它将保留知道用户从浏览器清除或者使用Javascript代码移除.Web Storage 支持事件通知机制,能够将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。