cookie localStorage sessionStorage之间的大致区别
这里面先提一下这三者之间的共同点都是数据保存仔浏览器端,且是同源的。
它们分别是什么意思:
-
cookie: 储在用户本地终端上的数据。有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密。一般应用最典型的案列就是判断注册用户是否已经登过该网站。
-
localStorage: 没有时间限制的数据存储,第二天、第二周或下一年之后,数据依然可用。
-
sessionStorage: 针对一个 session 的数据存储,当用户关闭浏览器窗口后,数据会被删除。
大概区别如下:
1.数据的生命周期:
- cookie如果没有设置时间则关闭浏览器失效设置 设置时间:则指定时间后失效;
- localStorage如果没有手动清除,永久保存;
- sessionStorage关闭设置sessionStorage的标签页便会失效,刷新该页面,不会失效,项目页面在一个新窗口打开或者关闭浏览器重新打开也会消失;
2.作用范围:
- cookie当前页面指向的文件目录及其子目录,当然设置setcookie函数的参数4,5,可以改变作用范围.同一浏览器的不同页面可以共享cookie,但是cookie无法跨域;
- localStorage同一个浏览器的不同页面可以共享信息,不同的浏览器之间数据不能共享;
- 只能在设置sessionStorage的标签页;
3.可存储的数据量:
- cookie大约在4k左右;
- localStorage大约在20M左右;
- sessionStorage大约在5M左右;
4.数据的存储位置:
- cookie未设置保存时间:保存在运行内存中 设置保存时间:保存在硬盘里;
- localStorage保存在硬盘里;
- sessionStorage保存在运行内存中;
5.数据的存储形式:
- cookie存储的形式是以字符串形式存储的:即“名称=值;data=时间”读的时候也是这样的不太方便好用;
- localStorage存储的形式也是字符串,以键值对的形式存储,常利用JSON对象的方法去进行读写数据时的涉及到的转化;
- sessionStorage的存储方式同上;
6.与服务器端通信:
- cookie每次都会携带在http头中,如果页面中有太多cookie会影响性能;
- localStorage仅在客户端(即浏览器)中保存,不参与和服务器的通信
- sessionStorage与服务端通信同上;