sessionStorage 、localStorage 和 cookie 之间的区别(转)

essionStorage 、localStorage 和 cookie 之间的区别(转)  

2012-05-08 14:29:19|  分类: HTML5CSS3WEBAPP|举报|字号 订阅

sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。
sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念。sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭窗口后,sessionStorage即被销毁。同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的。
Web Storage带来的好处:减少网络流量:一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递。快速显示数据:性能好,从本地读数据比通过网络从服务器获得数据快得多,本地数据可以即时获得。再加上网页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示。临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便。

浏览器本地存储与服务器端存储之间的区别其实数据既可以在浏览器本地存储,也可以在服务器端存储。
浏览器端可以保存一些数据,需要的时候直接从本地获取,sessionStorage、localStorage和cookie都由浏览器存储在本地的数据。
服务器端也可以保存所有用户的所有数据,但需要的时候浏览器要向服务器请求数据。1.服务器端可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端。2.服务器端也可以保存用户的临时会话数据。服务器端的session机制,如jsp的 session 对象,数据保存在服务器上。实现上,服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象。会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期。
服务器端保存所有的用户的数据,所以服务器端的开销较大,而浏览器端保存则把不同用户需要的数据分布保存在用户各自的浏览器中。浏览器端一般只用来存储小数据,而服务器可以存储大数据或小数据。服务器存储数据安全一些,浏览器只适合存储一般数据。

sessionStorage 、localStorage 和 cookie 之间的区别
共同点:都是保存在浏览器端,且同源的。区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。

 

sessionStorage 和 localStorage 之间的区别见上面的区别3、4


sessionStorage与页面 js 数据对象的区别页面中一般的 js 对象或数据的生存期是仅在当前页面有效,因此刷新页面或转到另一页面这样的重新加载页面的情况,数据就不存在了。而sessionStorage 只要同源的同窗口(或tab)中,刷新页面或进入同源的不同页面,数据始终存在。也就是说只要这个浏览器窗口没有关闭,加载新页面或重新加载,数据仍然存在。

 

cookie,容量4kb,默认各种浏览器都支持,缺陷就是每次请求,浏览器都会把本机存的cookies发送到服务器,无形中浪费带宽。
userdata,只有ie支持,单个容量64kb,每个域名最多可存10个共计640k数据。默认保存在C:\Documents and Settings\Administrator\UserData\目录下,保存格式为xml。关于userdata更多资料参考http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/reference/behaviors/userdata.asp

sessionStorage与localStorage

Web Storage实际上由两部分组成:sessionStorage与localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

为什么选择Web Storage而不是Cookie?

与Cookie相比,Web Storage存在不少的优势,概括为以下几点:

1. 存储空间更大:IE8下每个独立的存储空间为10M,其他浏览器实现略有不同,但都比Cookie要大很多。

2. 存储内容不会发送到服务器:当设置了Cookie后,Cookie的内容会随着请求一并发送的服务器,这对于本地存储的数据是一种带宽浪费。而Web Storage中的数据则仅仅是存在本地,不会与服务器发生任何交互。

3. 更多丰富易用的接口:Web Storage提供了一套更为丰富的接口,使得数据操作更为简便。

4. 独立的存储空间:每个域(包括子域)有独立的存储空间,各个存储空间是完全独立的,因此不会造成数据混乱。

兼容性如何?

接下来的各种测试是在以下浏览器中进行的:IE8、Firefox3.6、Chrome5、Safari4、Opera10,事实证明各个浏览器在API方面的实现基本上一致,存在一定的兼容性问题,但不影响正常的使用。

 

转载于:https://www.cnblogs.com/daishuguang/p/3606545.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除文件夹里的图片,打印删除日志

1 #region 僵尸文件夹中的文件如果不在活文件列表中&#xff0c;删之2 List<string> deadfile new List<string>();3 foreach(string str in lstZombileDic)4 {5 if(Direct…

第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换

目录二变量函数的傅里叶变换二维冲激及其取样性质二维连续傅里叶变换对二维取样和二维取样定理图像中的混叠二维离散傅里叶变换及其反变换二变量函数的傅里叶变换 二维冲激及其取样性质 两个连续变量的冲激函数定义为&#xff1a; δ(t,z){1,tz00,others(4.52)\delta(t, z) …

巧用VC工程下的rc文件

巧用VC工程下的rc文件(发表时间: 2008-12-30 17:20:00) 【评论】 【打印】 【字体&#xff1a;大 中 小】 本文链接&#xff1a;http://blog.pfan.cn/miaowei/40117.html 复制链接 分享到&#xff1a; 0标签:VC rc文件 资源文件 窗口尺寸设置 添加资源 纵观真个的VC工程&a…

蓝桥杯 参考题目 黄金队列(水题)

黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处&#xff0c;墙上的画像一般也挂在房间高度的0.618处&#xff0c;甚至股票的波动据说也能找到0.618的影子.... 黄金分割数是个无理数&#xff0c;也就是无法表示为两个整数的比值。0.618只…

QC4+充电协议_一文看懂各家充电协议!总算彻底理清了

五一小长假马上就要到了&#xff0c;虽说今年的五一小长假是一个长达5天的“Plus”版小长假&#xff0c;但是受到疫情的影响&#xff0c;大多数人还是选择了在家中度过这个假期。既然说到了宅在家里度过这个假期&#xff0c;那么很多人都会选择让手机来陪伴自己度过。虽然最近几…

vi编辑器选项

Vi编辑器有一些选项设置可以帮助人们更好的使用。 在vi中选项分为两种: 1、 开关选项&#xff0c;如果要打开这类选项就使用ex命令——&#xff1a;set 选项&#xff1b;如果要关闭这类选项就是用ex命令——&#xff1a;set no选项&#xff08;注意no和选项之间没有空格&…

javascript作用域容易记错的两个地方

1.function fun() { var a"rxm"; b"cwr"; } alert(a);//错误&#xff0c;a局部变量 alert(b); //"cwr",b全局变量。 2. var a"rxm"; function fun() { alert(a);var a"123"; alert(a); }fun();alert(a); 输出结果&#xff1…

第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性

目录二维DFT和IDFT的一些性质空间间隔和频率间隔的关系平移和旋转周期性对称性二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 Δu1MΔT(4.69)\Delta u \frac{1}{M \Delta T} \tag{4.69}ΔuMΔT1​(4.69) Δv1NΔZ(4.70)\Delta v \frac{1}{N \Delta Z} \tag{4.70}ΔvNΔ…

类图 示例

神州六号飞船是神州飞船系统的一种&#xff0c;它由轨道舱、返回舱、推进舱和逃逸求生塔等组成&#xff1b;航天员可以在返回舱内驾驶飞船&#xff0c;轨道舱由是航天员工作和休息的场所。在紧急的情况下&#xff0c;可以利用逃逸求生塔逃生。在飞船两侧有多个太阳能电池翼&…

bat 命令返回结果_bat教程[284] unzip解压

古树屋Click to follow us(1)unzip命令的简介C:\Users\86137\Desktop>unzip -hUnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Sendbug reports using http://www.info-zip.org/zip-bug.html; see README for details.Usage: unzip [-Z] [-opts[mo…

K/3 MRP运算数据不准的原因及解决方案

系统MRP计算的结果不正确, 经过分析系统的数据&#xff0c;把MRP计算不正确原因整理如下:1.系统中存在大量的生产任务单没有完全领料&#xff0c;但被结案&#xff0c;造成部份领料单窜单领料&#xff0c;最终引起已分配量不正确2.系统中存在大量的手工录入的生产领料单3.存在部…

解压版本的tomcat服务安装

以下适合各个版本的tomcat&#xff08;注意启动时8080端口要确保未被占用&#xff09; 今天搭一个Tomcat服务器,为了方便决定将解压版&#xff08;非windows的安装方式&#xff09;的tomcat添加为一个windows服务。 环境&#xff1a; JDK 1.5.0_06 Tomcat-5.5.20 Windows2003 瑞…

Framework7:不会Objective-C,也能开发iOS7应用

摘要&#xff1a;Framework7是一款开源的轻量级HTML框架&#xff0c;用来创建混合或有着iOS7原生体验的Web应用。其包含HTML布局、所有基础界面、动画效果、视图以及简单的自定义样式&#xff0c;让你无需修炼Objective-C语言&#xff0c;就可以构建自己的iOS7应用。 Framework…

第4章 Python 数字图像处理(DIP) - 频率域滤波7 - 二维DFT和IDFT的一些性质 - 傅里叶频谱和相角

目录二维DFT和IDFT的一些性质傅里叶频谱和相角二维DFT和IDFT的一些性质 傅里叶频谱和相角 F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86)F(u, v) R(u, v) jI(u, v) |F(u, v)|e^{j\phi(u,v)} \tag{4.86}F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86) 幅度&#xff0c;称为…

jquery 判断是否有类名_Day037-JS、jQuery

第73次(JavaScript)学习主题&#xff1a;JavaScript学习目标&#xff1a;1 掌握js的表单验证2 熟练敲出制作购物车代码,尽量不要看老师的代码1. 表单验证A(1) 如何可以产生一个4位的随机数验证码Math.floor(Math.random()*90001000)(2) 如何控制表单是否提交的通过设置form表单…

csc.exe的环境变量设置

默认情况下&#xff0c;这个路径是不在 Path 环境变量中的。你在命令行下直接输入 csc&#xff0c;windows不会到上面那个路径中去找这个程序。所以也就提示找不到文件了。 设置方法&#xff1a; 1) 在“我的电脑”上点击右键&#xff0c;现在“属性”&#xff1b; 2) 在弹出的…

如何分析解决Android ANR

[java] view plaincopy print?来自&#xff1a; http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/details/6777355 http://blog.csdn.net/tjy1985/article/details/6777983 http://www.eoeandroid.com/forum.php?modviewthr…

第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理

目录二维DFT和IDFT的一些性质二维离散卷积定理二维离散傅里叶变换性质的小结二维DFT和IDFT的一些性质 二维离散卷积定理 二维循环卷积表达式&#xff1a; (f⋆h)(x,y)∑m0M−1∑n0N−1f(m,n)h(x−m,y−n)(4.94)(f \star h)(x, y) \sum_{m0}^{M-1} \sum_{n0}^{N-1} f(m,n)h(x…

jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏

在上一篇&#xff1a;主要介绍线程组、HTTP请求默认值、用户定义的变量、固定定时器的应用场景及实战。以下主要介绍正则表达式提取器、调式取样器(Debug Sampler)、响应断言、HTTP信息头管理器的应用场景及实战。一、正则表达式提取器1、使用场景从请求的响应结果中取到需要的…

[置顶] 均衡音效

[置顶] 均衡音效 1均衡的作用 均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备&#xff0c;通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷&#xff0c;补偿和修饰各种声源及其它特殊作用。具体来说&#xff0c;它的作用如下&#xff1a; &#xff08…