Webstorage及localStorage、sessionStorage和cookie的区别,cookie与session的区别

Web项目中需要存储多种数据,比如用户的信息,商品的信息、评论等等。大体上有两种存储的方法是:
1.服务器端存储
(1)数据库技术:存储项目中的核心数据
(2)Session技术:存储当前用户的信息
2.客户端存储:不太紧要的与客户端有关的数据(比如浏览记录、内容定制、样式的定制)
1)Cookie技术:使用比较繁琐、数据的数量和长度大小不能超过4KB
2)Flash技术:逐渐被淘汰
3)WebStorage技术:使用简单,数据大小不超过8MB
4)IndexedDB:客户端直接存储对象,目前还不是HTML标准技术
Web会话:
指客户端浏览器从连接到某个Web服务器开始,一系列的请求-响应过程。直到客户端关闭浏览器,会话结束。
HTML5的WebStorage技术,提供了两个对象,用于在浏览器中存储客户端的访问数据:
window.sessionStorage:会话级存储
在浏览器的内部中存储的与某个服务器间的一系列请求-响应过程中产生的数据——都是Key-Value对形式。当会话结束时(用户关闭浏览器),会话级数据即消失。存储在seeionStorage中的数据可以跨越页面刷新而存在,同时如果浏览器支持,浏览器崩溃并重启之后依然可用(Firefox和Webkit都支持,IE则不支持)。
使用:

sessionStorage['key']='value';//存储一个数据
var v=sessionStorage['key'];//读取一个数据
sessionStorage.length;//获取数据的个数
sessionStorage.setItem('key','value');//存储一个数据
sessionStorage.getItem('key');//读取一个数据
sessionStorage.removeItem('key');//删除一个数据
sessionStorage.clear();//清除所有的数据

window.localStorage:本地/跨会话级存储
在客户端文件系统/硬盘中存储客户端与服务器间的访问数据–都是key-value对形式。即使关闭浏览器,甚至关闭计算机仍然存在,否则会永久存在。
使用:

localStorage['key']='value';//存储一个数据
var v=localStorage['key'];//读取一个数据
localStorage.length;//获取数据的个数
localStorage.setItem('key','value');//存储一个数据
localStorage.getItem('key');//读取一个数据
localStorage.removeItem('key');//删除一个数据
localStorage.clear();//清除所有的数据

localStorage、sessionStorage和cookie的区别:
1.WebStorage的数据始终保存在客户端,不会随请求发送给服务器。cookie数据会随http请求放在消息头部出传给服务器(即使不需要传递),即cookie在浏览器和服务器之间来回传递。
2.存储数据的数量和大小不同,WebStorage存储数据的大小一般为8MB,而cookie存储的数据一般不超过4KB。
3.数据的有限期不同,sessionStorage仅在当前会话浏览器关闭之前有效。当会话结束时(用户关闭浏览器),会话级数据即消失。存储在seeionStorage中的数据可以跨越页面刷新而存在,同时如果浏览器支持,浏览器崩溃并重启之后依然可用(Firefox和Webkit都支持,IE则不支持)。localStorage始终有效。cookie只在设置的有效时间内有效,即使关闭浏览器窗口。
4.作用域不同,sessionStorage在不同浏览器窗口存储数据不共享。localStorage和cookie在所有同源的不同浏览器窗口存储数据共享。
5.WebStorage使用简单,获取数据容易,cookie使用较繁琐。
6.WebStorage支持事件通知机制,可以将更新的数据通知发送给监听者。
应用程序缓存带来的优势:
1.离线浏览,用户可在应用离线时使用它们
2.速度,已缓存资源加载的更快
3.减少服务器负载,浏览器将只从服务器下载更新过或更改过的资源。
cookie与session的区别
1.存放位置不同
cookie存放在客户端,session存放在服务器端
2.存取的方式不同
Cookie只保存字符串,session支持各类型对象
3.安全性不同
cookie不是很安全,别人可以分析存在本地的cookie进行cookie欺骗。而session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。
4.对服务器造成的压力不同
session保存在服务器端,每个用户都会产生一个session。假如并发访问的用户很多,会产生很多的session,耗费大量的内存。而Cookie保存在客户端,不占用服务器端资源
5.跨域支持上不同
cookie支持跨域名访问,session不支持跨域名访问。session仅在他所在地域名内有效。
6.存储数据的大小不同
单个cookie保存的数据不能超过4k,很多浏览器限制一个站点最多保护20个cookie。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值