详说 Cookie, LocalStorage 与 SessionStorage
来源:互联网 发布:mac打不开研招网 编辑:程序博客网 时间:2024/05/07 10:13
基本概念
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
- 欢迎使用CSDN-markdown编辑器
- Android自动填充短信验证码
- Java NIO原理图文分析及代码实现
- js中的document.write
- 控制台句柄
- 详说 Cookie, LocalStorage 与 SessionStorage
- redis是个单线程的程序,为什么会这么快呢?
- Linux下amr转mp3方法
- 游戏应用快速审核上架
- 如何允许 WinXP 和 Win7 自动创建 dump 文件
- WebApp中input限制金额输入
- jquery获取选中radio的值
- Android 事件分发机制
- 黑马程序员——Java基础---数据类型