cookie localStroage sessonStroage 区别
Javascript存在缓存对象,分别是cookie、sessionStroage以及localStroage;
共同点 :
- 都是保存在浏览器端的,是同源的(端口,域名,协议)
- 字符串类型的键值对
区别
cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储;
生命周期为浏览器窗口关闭之前一直有效。
存放数据最大为4kb
个数限制为20个,且过多会影响性能,容易被拦截
sessionStorage
sessionStorage是Storage类型的一个对象,拥有clear(),getItem(name),key(index),removeItem(name),setItem(name,value)方法。
生命周期为浏览器关闭,将特定的绘画保存在浏览器,实际为临时保存
localStorage
localStorage 会可以将第一次请求的数据直接存储到本地,这个相当于一个 5M 大小的针对于前端页面的数据库,相比于 cookie 可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的。
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换。
localStorage在浏览器的隐私模式下面是不可读取的。
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。