Cookie, LocalStorage 与 SessionStorage的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tomhs3000/article/details/79356057

一、概念

1. Cookie 的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。

2. localStorage 是 HTML5 标准中新加入的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有一个叫 userData 的东西用于本地存储,而当时考虑到浏览器兼容性,更通用的方案是使用 Flash。

3. sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思,直译过来是“会话”。而 sessionStorage 是一个前端的概念,它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。

二、区别

Cookie可设置失效时间,默认是关闭浏览器后失效;大小是4k;每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题;需要自己封装,源生的Cookie接口不友好。

localStorage除非被清除,否则永久保存;大小为5MB;仅在客户端(即浏览器)中保存,不参与和服务器的通信;API使用方便。

sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除;大小为5MB;仅在客户端(即浏览器)中保存,不参与和服务器的通信;使用方法同localStroage。

三、应用

由于cookie每次http请求都会携带,一般用户存储一些关键性信息,比如token,uid等,localStorage可以当做本地存储来使用,但是需要注意的是浏览器隐私模式下是无法读取的,也不会被爬虫读取,如果不手动删除是一直存在的,而sessionStorage的有效期只是网页在浏览器打开到关闭的时间段。

tips:隐私模式下可以采用window.name模拟sessionStorage的方式处理,因为window.name是可做保存的,这个也是其解决跨域方案的原因。

猜你喜欢

转载自blog.csdn.net/Tomhs3000/article/details/79356057