Cookie、SessionStorage、LocalStorage的区别

cookie、sessionStorage、localStorage都是客户端存储的解决方法

相同点

都是保存在浏览器端,并且都是同源的(URL的协议、端口、主机名都相同)

不同点

  1. 数据的生命周期
    cookie:如果不在浏览器中设置过期时间,cookie会保存在内存中,生命周期随浏览器关闭而结束。如果设置了过期时间,cookie会保存在硬盘中,关闭浏览器,cookie数据任然存在,知道过期时间结束才消失
    SessionStorage:当页面或者浏览器关闭的时候,生命周期结束,SessionStorage数据被清空
    Localstorage:长期存储,除非手动清除,否则永久保存

  2. 存放数据大小:
    cookie:4kb左右
    SessionStorage和Localstorage:一般5M

  3. 与服务器端通信:
    cookie:每次都会携带在HTTP请求头中,即使不需要,也会被传送到服务器
    SessionStorage和Localstorage:不与服务器端通信

  4. 安全性:
    cookie:针对cookie所存在的攻击:cookie欺骗,cookie截获
    SessionStorage和Localstorage不会与服务器端通信,所以相比cookie,安全性更高,不用担心会被截获,但是仍然会存在伪造问题

  5. 数据操作
    cookie:原生cookie接口不友好,一般会重新封装在使用
    SessionStorage和Localstorage提供了一些方法,数据操作比cookie方便

  6. 应用场景:
    sessionStorage:敏感账号一次性登录
    localStorage:常用于长期登录
    cookie:
    (1).判断用户是否登录过网站,以便下次登录时能够实现自动登录(或者记住密码)
    (2). 保存上次的登录信息
    (3).保存上次查看的页面
    (4). 浏览计数

  7. cookie的缺点

  • 大小受限制
  • 用户可以禁用cookie,使功能受限
  • 安全性比较低
  • 每次请求都要传送cookie到服务器端,浪费带宽

localStorage和sessionStorage操作方法

  1. setItem:将value存储在key字段
sessionStorage.setItem("key", "value");
localStorage.setItem("key", "value");
  1. getItem:获取指定key存储的值
var value = sessionStorage.getItem("key");
var value = localStorage.getItem("key");

3.removeItem:删除指定key存储的值

sessionStorage.removeItem("key");
localStorage.removeItem("key");

4.clear:删除所有的数据

sessionStorage.clear();
localStorage.clear();

其他操作方法

localStorage和sessionStorage除了自身的setItem、getItem等方法之外,还可以用点操作和[]

var storage = window.localStorage;
storage.key1 = "hello";
storage["key2"] = "world"
console.log(storage.key1); // "hello"
console.log(storage["key2"]); // "world"

localStorage和sessionStorage提供的key()和length可以方便的实现存储数据的遍历

var storage = window.localStorage;
for(var i = 0, len = storage.length; i < len; i++) {
    var key = storage.key(i);
    var value = storage.getItem(key);
    console.log(key + "=" + value); 
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342