- 浏览: 1112772 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
详说 Cookie, LocalStorage 与 SessionStorage
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 肆意妄为。所以千万不要用它们存储你系统中的敏感数据。
-
转自:
http://jerryzou.com/posts/cookie-and-web-storage/
-
Web Storage API 的使用可以参考MDN的文档
一、基本概念
Cookie
Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。
localStorage
localStorage 是 HTML5 标准中新加入的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有一个叫 userData 的东西用于本地存储,而当时考虑到浏览器兼容性,更通用的方案是使用 Flash。而如今,localStorage 被大多数浏览器所支持,如果你的网站需要支持 IE6+,那以 userData 作为你的 polyfill 的方案是种不错的选择。
特性 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
localStorage | 4 3.5 | 8 | 10.50 | 4 | |
sessionStorage | 5 | 2 | 8 | 10.50 | 4 |
sessionStorage
sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思,直译过来是“会话”。而 sessionStorage 是一个前端的概念,它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。
二、异同对比
特性 | Cookie | localStorage | sessionStorage |
数据的生命期 | 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
存放数据大小 | 4K左右 | 一般为5MB | 同左 |
与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | 同左 |
易用性 | 需要程序员自己封装,源生的Cookie接口不友好 | 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 | 同左 |
应用场景
有了对上面这些差别的直观理解,我们就可以讨论三者的应用场景了。
因为考虑到每个 HTTP 请求都会带着 Cookie 的信息,所以 Cookie 当然是能精简就精简啦,比较常用的一个应用场景就是判断用户是否登录。针对登录过的用户,服务器端会在他登录时往 Cookie 中插入一段加密过的唯一辨识单一用户的辨识码,下次只要读取这个值就可以判断当前用户是否登录啦。曾经还使用 Cookie 来保存用户在电商网站的购物车信息,如今有了 localStorage,似乎在这个方面也可以给 Cookie 放个假了~
而另一方面 localStorage 接替了 Cookie 管理购物车的工作,同时也能胜任其他一些工作。比如HTML5游戏通常会产生一些本地数据,localStorage 也是非常适用的。如果遇到一些内容特别多的表单,为了优化用户体验,我们可能要把表单页面拆分成多个子页面,然后按步骤引导用户填写。这时候 sessionStorage 的作用就发挥出来了。
三、安全性的考虑
需要注意的是,不是什么数据都适合放在 Cookie、localStorage 和 sessionStorage 中的。使用它们的时候,需要时刻注意是否有代码存在 XSS 注入的风险。因为只要打开控制台,你就随意修改它们的值,也就是说如果你的网站中有 XSS 的风险,它们就能对你的 localStorage 肆意妄为。所以千万不要用它们存储你系统中的敏感数据。
-
转自:
http://jerryzou.com/posts/cookie-and-web-storage/
-
发表评论
-
Javascript 测试框架之 隐式声明 之 describe
2019-06-25 15:26 2590为什么使用 javascript 测试框架时,没有显式导入 d ... -
JavaScript之ECMAScript6新特性之_03_箭头函数(Arrow Function)
2018-01-25 13:46 1117一、简介 箭头函数(Arrow Function)是 ES6 ... -
JavaScript之ECMAScript6新特性之_02_线程异步阻塞: Promise, Async / await
2018-01-12 16:51 2326刚出来不久的 ES8 包含了 async 函数,它的出现,终于 ... -
JavaScript之ECMAScript6新特性之_01_开篇
2017-08-17 02:54 603点此查看全部: http://es6-features.org ... -
jQuery Versions - browser support
2017-08-12 04:19 1616jQuery 3.2.1 Support Deskto ... -
基于HTML5实现的中国象棋游戏
2017-06-24 02:24 1688HTML5实现中国象棋游戏 http://www.w2bc.c ... -
JavaScript之跨域请求解决方案
2017-06-07 11:03 3972浏览器处于安全原因,在使用 Ajax 进行请求访问时,不允许跨 ... -
JavaScript之 25 道面试题
2017-04-17 17:05 95425 Essential JavaScript Intervi ... -
JavaScript小应用之分页算法
2017-03-16 12:56 666效果图: function getPagina ... -
jQuery之empty() VS. remove()
2017-03-16 10:32 721jQuery empty() vs remove() Wh ... -
jQuery之 prop() VS. attr()
2017-03-14 16:43 660attr() 用于自定义属性,id ; prop() 用于 ... -
jQuery之mouseover,mouseover,mouseout,mouseleave
2017-03-14 10:20 655Jquery mouseenter() vs mouseove ... -
javascript之JS操作iframe
2017-02-28 14:56 2193JS操作iframe 1. 获得iframe的w ... -
javascript之面向对象编程之原型继承
2017-01-02 15:34 1126前文讲到“属性继承” ... -
jquery之live(), delegate(), on() 方法
2016-11-26 23:48 927通过下面的一个实例理解 jQuery 的 live(), de ... -
javascript之小应用:网页在线聊天
2016-11-08 11:48 4296概览 这款使用 PHP 和 javascript 搭建的 ... -
javascript之编程序题目
2016-11-06 17:30 10531. 判断两个字符串是否:字母相同切长度相同(空格不算)。 ... -
javascript之面向对象编程之属性继承
2016-10-23 21:09 914函数继承可以分为两种:1、继承其 this 属性 2、继承其 ... -
javascript 之 undefined
2016-08-12 11:01 710一、用法 undefined 关键字有两种用法: 1. 如 ... -
javascript之 == vs ===
2016-06-12 15:59 654一、Comparison Overview 1. Speed ...
相关推荐
cookie localStorage sessionStorage 概念 存放在客户端的一段文本信息 存储在客户端的临时信息,只能存放字符串类型数据 同localStorage 大小 4k 5M 5M 生命周期 浏览器关闭,数据清空 存在内存中,除非...
localStorage和sessionStorage在使用上有很多相似之处,但也存在关键性的差异。 ### localStorage的基本概念和用法 localStorage提供了一种在客户端存储数据的机制,其特点包括域内安全和永久保存。所谓域内安全...
在Web开发中,数据存储是不可或缺的一部分,jQuery提供了一些便捷的方法来访问和操作浏览器的本地存储,包括cookie、localStorage和sessionStorage。这三个机制都用于在客户端存储数据,但它们各有特点和适用场景。 ...
【cookie_session_localstorage_sessionstorage】【前端】web中的k-v存储们有什么区别
角度存储Cookie,会话和本地存储的装饰器和服务该库添加了装饰器,使使用HTML5的localStorage和sessionStorage自动保存和恢复变量变得非常容易。 它还提供了Angular-Injectable Session-和LocalStorageService。包括...
sessionStorage与localStorage类似,但其数据仅在当前会话中有效,当浏览器窗口被关闭,存储的数据将被清除。因此,sessionStorage常用于临时存储用户在单个浏览会话中的信息,如页面状态或用户输入的数据。 3. ...
超级存储为cookie,localStorage和sessionStorage提供了一些帮助。 1Kb压缩 存储所有类型的值(对象和数组) 空时的默认值 前缀键 会话保持在标签之间 安装 安装npm软件包 npm install @jaysalvat/super-...
本文将详细介绍三种常见的浏览器存储方式:Cookie、localStorage 和 sessionStorage。 首先,Cookie 是最早的浏览器存储方式,它基于HTTP规范,主要用于识别用户。当服务器向浏览器发送响应时,可以包含Set-Cookie...
HTML5的本地存储功能主要由两个API提供:localStorage和sessionStorage。它们允许Web应用程序在用户的浏览器上持久存储数据,而不依赖于服务器或Cookie。这两者的主要区别在于数据的生命周期:localStorage的数据...
### Cookie、SessionStorage 和 LocalStorage 的区别 #### 一、基本概念 - **Cookie**: 是一种小型文本文件,由服务器生成并发送至客户端浏览器,在浏览器中保存一段时间后,再发送回服务器。主要用于跟踪用户状态...
localStorage 的使用方式与 sessionStorage 类似,但数据持久化更久。同样有 setItem、getItem、removeItem 和 clear 方法。 例如: ```javascript // 设置数据 window.localStorage.setItem("name", "张三"); ...
首先,localStorage和sessionStorage是HTML5引入的两种Web Storage API,它们提供了在浏览器中持久化存储数据的能力。localStorage存储的数据没有过期时间,直到用户明确清除;sessionStorage的数据则在浏览器会话...
WebStorageCookieStore 基于Web存储API(localStorage和sessionStorage)的硬cookie库的cookie存储用法 import { CookieJar } from 'tough-cookie' ;import WebStorageCookieStore from 'tough-cookie-web-storage-...
Cookie Cookie是什么:指某些网站存储在用户本地终端的数据 作用理解:登陆一个网站,保存了数据,近期不用再登录 应用层面来说:cookie是一段字符串; js层面来说:cookie是document对象下的一个String类型的属性 ...
客户端存储 Cookie 和会话存储 Classe básica de gravação e leitura de cookie 本地存储 ... session = new SessionStorage; método para setar dados, setInfo(key, {data}, validate) cookie.