详说 Cookie, LocalStorage 与 SessionStorage
来源:互联网 发布:edius有mac版吗 编辑:程序博客网 时间:2024/05/19 17:09
最近在找暑期实习,其中百度、网易游戏、阿里的面试都问到一些关于HTML5的东西,问题大多是这样开头的:“你用过什么HTML5的技术呀?” 而后,每次都能扯到 Cookie 和 localStorage 有啥差别。这篇文章就旨在详细地阐述这部分内容,而具体 Web Storage API 的使用可以参考MDN的文档,就不在这篇文章中赘述了。
基本概念
Cookie
Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。
localStorage
localStorage 是 HTML5 标准中新加入的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有一个叫 userData 的东西用于本地存储,而当时考虑到浏览器兼容性,更通用的方案是使用 Flash。而如今,localStorage 被大多数浏览器所支持,如果你的网站需要支持 IE6+,那以 userData 作为你的 polyfill 的方案是种不错的选择。
sessionStorage
sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思,直译过来是“会话”。而 sessionStorage 是一个前端的概念,它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。
三者的异同
应用场景
有了对上面这些差别的直观理解,我们就可以讨论三者的应用场景了。
因为考虑到每个 HTTP 请求都会带着 Cookie 的信息,所以 Cookie 当然是能精简就精简啦,比较常用的一个应用场景就是判断用户是否登录。针对登录过的用户,服务器端会在他登录时往 Cookie 中插入一段加密过的唯一辨识单一用户的辨识码,下次只要读取这个值就可以判断当前用户是否登录啦。曾经还使用 Cookie 来保存用户在电商网站的购物车信息,如今有了 localStorage,似乎在这个方面也可以给 Cookie 放个假了~
而另一方面 localStorage 接替了 Cookie 管理购物车的工作,同时也能胜任其他一些工作。比如HTML5游戏通常会产生一些本地数据,localStorage 也是非常适用的。如果遇到一些内容特别多的表单,为了优化用户体验,我们可能要把表单页面拆分成多个子页面,然后按步骤引导用户填写。这时候 sessionStorage 的作用就发挥出来了。
安全性的考虑
需要注意的是,不是什么数据都适合放在 Cookie、localStorage 和 sessionStorage 中的。使用它们的时候,需要时刻注意是否有代码存在 XSS 注入的风险。因为只要打开控制台,你就随意修改它们的值,也就是说如果你的网站中有 XSS 的风险,它们就能对你的 localStorage 肆意妄为。所以千万不要用它们存储你系统中的敏感数据。
- 详说 Cookie, LocalStorage 与 SessionStorage
- 详说 Cookie, LocalStorage 与 SessionStorage
- 详说 Cookie, LocalStorage 与 SessionStorage
- H5开发:详说 Cookie, LocalStorage 与 SessionStorage
- Cookie, LocalStorage 与 SessionStorage
- Cookie, LocalStorage 与 SessionStorage
- Cookie, LocalStorage 与 SessionStorage
- Cookie, LocalStorage 与 SessionStorage
- Cookie,LocalStorage与SessionStorage
- cookie,sessionstorage与localstorage
- Cookie, LocalStorage 与 SessionStorage 区别要点
- cookie与HTML5的localStorage和sessionStorage
- 细说cookie,localstorage与sessionstorage的区别
- Cookie, LocalStorage 与 SessionStorage的区别
- sessionStorage,localStorage,cookie
- session, cookie, localStorage, sessionStorage
- sessionstorage,localstorage和cookie
- LocalStorage,SessionStorage,Cookie
- onMeasure
- python的元组和列表使用之一
- 判断浏览器的方法
- web学习博客2016/2/19
- iOS屏幕适配
- 详说 Cookie, LocalStorage 与 SessionStorage
- HDU 5372 Segment Game - 离散化&树状数组
- 资料整理工具推荐mybase,本人使用
- c语言入门之项目2.0——成绩等级
- markdown学习3:使用Sublime Text作为Markdown编辑器
- WF4.0持久化
- sql语句批量替换字段数据
- 有关l2,1范数作用的理解
- css之几个细节