文档章节

Cookie、LocalStorage、SessionStorage的区别

x
 xszl
发布于 2017/08/21 15:00
字数 641
阅读 49
收藏 0

##概念 ###Cookie Cookie是保存在客户端的一块数据,常用于记录用户登录的一些状态信息,比如记住密码。 ###LocalStorage LocalStorage是HTML5新增的Web Storage API,IE8及以上浏览器都支持 ###SessionStorage 它为每一个给定的源(given origin)维持一个独立的存储区域,该存储区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。 ###三者的区别 |Cookie|LocalStorage|SessionStorage :------|:------------:|:------------:|:------------: 生命周期|设置cookie时会设置过期时间|永久保存(除非手动清除)|当前会话有效(关闭页面或浏览器清除) 存储大小|4k左右(不同浏览器会有细微差异)|一般5M|一般5M 是否与服务器通信|每次请求都会附加在HTTP请求头部|存储在本地,不与服务器通信|存储在本地,不与服务器通信 易用性|原生接口不太友好,需要封装|可以直接使用|可以直接使用

  • Cookie大小会有限制,大约4k左右,不同浏览器会有细微差异,另外对于数量也有一定的限制,最为重要的是每次HTTP请求都会附带这些Cookie信息,会给服务器增加很重负担,所以理论上,Cookie能不用就不用,能精简就精简。用户是否登录,是否记住用户名这些场景可以使用Cookie实现。

  • LocalStorage作为HTML5新增的Web Storage API,能接替以前Cookie的一些工作,比如购物车信息。LocalStorage存储量很大,每个浏览器的容量上限不同,并且只要没有手动清除会一直保存,而且比起Cookie,它的原生接口可直接使用(使用Cookie时,我们一般会选择引入一些第三方库或者自己封装一下原生的接口)。最重要的是LocalStorage存储在本地,不参与服务器通信,所以不会给服务器造成任何压力,在性能方面也会有一定的提升

  • SessionStorage,和LocalStorage的区别就是生命周期不一样,只在当前会话有效。像一些开屏图和弹窗就需要用SessionStorage来实现 ###总结 三者的区别以上做了一些总结,有遗漏的话还请补充。需要注意的是不是什么数据都适合放在Cookie、LocalStorage、SessionStorage中,一些敏感信息千万不要存储在本地,以防遭受XSS攻击。

© 著作权归作者所有

上一篇: 浏览器渲染原理
下一篇: 详解Cookie、Session
x
粉丝 0
博文 14
码字总数 17267
作品 0
私信 提问
第139天:详解cookie、 sessionStorage 和localStorage

1.cookie:存储在用户本地终端上的数据。有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密。一般应用最典型的案列就是判断注册用户是否...

半指温柔乐
2018/01/08
0
0
Session, LocalStorage ,Cache-Control

Session 为什么要使用Session? Session的使用? 总结Cookie与Session: Cookie Session LocalStorage localStorage是html5提供的一个API,localStorage的实质是一个哈希 Session是服务器的哈...

code_susu
2018/07/31
0
0
Cookie sessionStorage localStorage

共同点:都是保存在浏览器端,同源。区别:cookie数据始终在同源的http请求携带,即cookie在浏览器和服务器间来传递。而sessionStorage 和localStorage 不会自动把数据发给服务器,仅本地保存...

舒龙虎
02/27
16
0
HTMl5的sessionStorage和localStorage

html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。 sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结...

lg2045
2014/10/09
98
0
html5 LocalStorage进行离线状态保存

在使用html5中localStorage,sessionStorage,cookie或者webDatabase(目前仅pc上部分浏览器支持)进行离线数据存储,转场数据交互,比如保存游戏状态,网络游戏脱机体验,另外,有时候在网络...

IamOkay
2014/11/07
106
0

没有更多内容

加载失败,请刷新页面

加载更多

对比ubuntu与centos系统 ​​​​

CentOS与Ubuntu该如何选择,哪个更好用。笔者在自媒体平台收集了一些网友的观点,较为经典,分享给大家。至于应该选择哪个,希望看完本文章后,读者心中有数。 观点1:CentOS适用于服务器,U...

老孟的Linux私房菜
今天
13
0
Java的基本类型

一、Java的基本类型 Java的基本类型有哪些? boolean char byte short int long float double ? 延伸思考 思考一:为什么有的书籍说Java存在第9种数据类型? 实际上,JAVA中还存在另外一种基...

yumoop
今天
14
0
OSChina 周四乱弹 —— 富婆小时候

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @猿敲月下码 :#今日歌曲推荐# 分享陈慧娴的单曲《夜机》 《夜机》- 陈慧娴 手机党少年们想听歌,请使劲儿戳(这里) @開源中國張學友 :早上...

小小编辑
今天
26
0
MyMinimad ── Linux下用libmad写的mp3解码播放程序(四)

优化了内存使用,不再使用mmap映射整个文件到内存 /* * 本程序是从 minimad 改进而来,如要更详细的说明请参看 minimad.c * * Gu Zhou, 2009/12/25, SiChuan University, China *...

代码强国
今天
18
0
Minikube安装

1、下载Minikube二进制文件 sudo curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/latest/minikube-linux-amd64 2、设置权限 sudo chmod +x minikube......

RogueQ
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部