Cookie、sessionStorage、localStorage的区别
1.Cookie、localStorage、sessionStorage的区别
1.1 c o o k ie
Cookie 是⼩甜饼的意思。顾名思义,cookie 确实⾮常⼩,它的⼤⼩限制为4KB左右,是⽹景公司的前雇员 Lou Montulli 在1993年3⽉的发明。它的主要⽤途有保存登录信息,⽐如你登录某个⽹站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存⼊⼀段辨别⽤户⾝份的数据来实现的。
1.2 lo c a lSto r a ge
localStorage 是 HTML5 标准中新加⼊的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有⼀个叫 userData 的东西⽤于本地存储,⽽当时考虑到浏览器兼容性,更通⽤的⽅案是使⽤ Flash。⽽如今,localStorage 被⼤多数浏览器所⽀持,如果你的⽹站需要⽀持 IE6+,那以userData 作为你的 polyfill 的⽅案是种不错的选择。
sessionstorage和localstorage1.3 sessionStorage
sessionStorage 与 localStorage 的接⼝类似,但保存数据的⽣命周期与 localStorage 不同。做过后端开
发的同学应该知道 Session 这个词的意思,直译过来是“会话”。⽽ sessionStorage 是⼀个前端的概念,它只是可以将⼀部分数据在当前会话中保存下来,刷新页⾯数据依旧存在。但当页⾯关闭后,sessionStorage 中的数据就会被清空。
1.4 三者异同
cookie ⼀般由服务器⽣成,可设置失效时间。如果在浏览器端⽣成Cookie,默认是关闭浏览器后失效,存放数据⼤⼩⼀般4K左右,⽽sessionStorage与localStorage⼤⼩在5兆左右,在客户端⽣成,localStorage除⾮被清除,否则会永久保存,sessionStorage仅在当前会话下有效,关闭页⾯或浏览器后被清除,cookie在与服务器端通信每次都会携带在HTTP头中,如果使⽤cookie保存过多数据会带来性能问题,⽽sessionStorage与localStorage仅在客户端(即浏览器)中保存,不参与和服务器的通信。
1. cookie由服务端⽣成,⽤于标识⽤户⾝份;⽽两个storage⽤于浏览器端缓存数据
2. 三者都是键值对的集合
3. ⼀般情况下浏览器端不会修改cookie,但会频繁操作两个storage
4. 如果保存了cookie的话,http请求中⼀定会带上;⽽两个storage可以由脚本选择性的提交
5. 会话的storage会在会话结束后销毁;⽽local的那个会永久保存直到覆盖。cookie会在过期时间之后销毁。
6. 安全性⽅⾯,cookie中最好不要放置任何明⽂的东西。两个storage的数据提交后在服务端⼀定要校验(其实任何payload和qs⾥的参数都要校验)。
参考:
jer r yzo u.c o m/po sts/c o o k ie-a nd-w eb-sto r a ge/
ra
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论