(1)Cookie
Cookie是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个问题,Cookie就出现了。Cookie的大小只有4kb,它是一种纯文本文件,每次发起HTTP请求都会携带Cookie。
Cookie的特性:
-
Cookie一旦创建成功,名称就无法修改
-
Cookie是无法跨域名的,也就是说a域名和b域名下的cookie是无法共享的,这也是由Cookie的隐私安全性决定的,这样就能够阻止非法获取其他网站的Cookie
-
每个域名下Cookie的数量不能超过20个,每个Cookie的大小不能超过4kb
-
有安全问题,如果Cookie被拦截了,那就可获得session的所有信息,即使加密也于事无补,无需知道cookie的意义,只要转发cookie就能达到目的
-
Cookie在请求一个新的页面的时候都会被发送过去
(2)LocalStorage
LocalStorage的优点:
-
在大小方面,LocalStorage的大小一般为5MB,可以储存更多的信息
-
LocalStorage是持久储存,并不会随着页面的关闭而消失,除非主动清理,不然会永久存在
-
仅储存在本地,不像Cookie那样每次HTTP请求都会被携带
LocalStorage的缺点:
-
存在浏览器兼容问题,IE8以下版本的浏览器不支持
-
如果浏览器设置为隐私模式,那我们将无法读取到LocalStorage
-
LocalStorage受到同源策略的限制,即端口、协议、主机地址有任何一个不相同,都不会访问
Cookie和LocalStorage的区别
cookie:其实最开始是服务器端用于记录用户状态的一种方式,由服务器设置,在客户端存储,然后每次发起同源请求时,发送给服务器端。cookie 最多能存储 4 k 数据,它的生存时间由 expires 属性指定,并且 cookie 只能被同源的页面访问共享。
sessionStorage:html5 提供的一种浏览器本地存储的方法,它借鉴了服务器端 session 的概念,代表的是一次会话中所保存的数据。它一般能够存储 5M 或者更大的数据,它在当前窗口关闭后就失效了,并且 sessionStorage 只能被同一个窗口的同源页面所访问共享。