javascript中sessionStorage 、localStorage 和 Cookie

欢迎访问我的博客,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

参考文章:JS 详解 Cookie、 LocalStorage 与 SessionStorage

下面是个人总结内容:

相同点

用于浏览器端存储的缓存数据

不同点

特性 Cookie localStorage sessionStorage
数据的生命期 可设置的失效时间,到达时间自动过期 除非被清除,否则永久保存 仅用于当前会话,浏览器关闭,立即被清除
存放数据大小 4K左右 一般为5MB 一般为5MB
与服务器端通信 携带在HTTP头中,数据会发送到服务器端,可能造成宽带浪费 只在客户端,不参与和服务端的通信 只在客户端,不参与和服务端的通信
易用性 需程序员自己封装,源生的Cookie接口不友好 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

应用场景

Cookie:

1. 最好精简,因为本身存放数据大小很小
2. 常用于判断用户登录,对于登录过的用户,浏览器会插入一个唯一的标识,当下次用户需要登录,只要读取到这个值,就能判断当前用户是否登录了

localStorage:

1. 购物车管理工作,一些产生的本地数据用以完成数据持久化

sessionStorage:

  1. 多页面表单,按步骤引导用户填写

安全性

  1. Cookie、localStorage 和 sessionStorage三者,只要打开控制台,都能看到这三者存放的数据的,并且能够随意修改,所以会产生风险
  2. sessionStorage使用了session加密,这样用户看到的数据都是经过加密处理过的,会难以获取正确的标识
  3. 但是对于localStorage或者Cookie的数据,就可以被肆意妄为的修改或者伪造了
  4. 上面是我个人的一些理解,文章中还提到了XSS注入的风险,关于XSS注入为此我专门查了些文档,推荐一篇自我感觉写的相当详细的Web安全测试之XSS

Web Storage AND Cookie

  1. 前者存储空间更大
  2. 前者存储内容不会发送到服务器,防止造成宽带浪费
  3. 接口丰富
  4. 独立的存储空间:每个域(包括子域)有独立的存储空间,各个存储空间是完全独立的,避免造成数据混乱
  5. 每个特定的域名下最多生成20个cookie
  6. sessionStorage用于本地存储一个会话存储,关闭会话,随之销毁
  7. localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的
  8. Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地存储数据而生

一些基本操作

localStoragesessionStorage都具有相同的操作方法,例如setItemgetItemremoveItem

setItem存储value

用于存储对象格式的数据

12
sessionStorage.setItem("key", "value");     localStorage.setItem("site", "qqqww");

getItem获取value

获取指定关键字段key本地存储的值

12
var value = sessionStorage.getItem("key");     var site = localStorage.getItem("site");

removeItem删除key

删除指定关键字段key本地存储的值

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

clear清除所有的key/value

清除所有本地的key/value

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

其他操作方法:点操作和[ ]

web Storage不但可以用自身的setItem`,getItem`等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储

12345
var storage = window.localStoragestorage.key1 = "hello"storage["key2"] = "world" console.log(storage.key1)console.log(storage["key2"])

遍历

localStorage和sessionStorage的key和length属性实现遍历

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

123456
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); }

javascript中sessionStorage 、localStorage 和 Cookie相关推荐

  1. 关于sessionStorage,localStorage和cookie三者之间相同点与不同点

    关于sessionStorage,localStorage和cookie三者之间相同点与不同点 类别 sesstionStorage localstorage cookie 存储量 5M(具体看浏览器 ...

  2. sessionStorage localStorage cookie的区别

    sessionStorage localStorage cookie的区别 基本概念 cookie:是网景公司的前雇员在1993年发明.它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码 ...

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

    essionStorage .localStorage 和 cookie 之间的区别(转) 2012-05-08 14:29:19|  分类: HTML5CSS3WEBAPP|举报|字号 订阅 ses ...

  4. sessionStorage localStorage cookie

    sessionStorage & localStorage & cookie 概念 html5中的Web Storage包括了两种存储方式:sessionStorage和localSt ...

  5. 本地缓存的三种方式:sessionStorage、localStorage、Cookie

    1.sessionStorage:临时的会话存储 只要当前的会话窗口未关闭,存储的信息就不会丢失,即便刷新了页面,或者在编辑器中更改了代码,存储的会话信息也不会丢失. 2.localStorage:永 ...

  6. sessionStorage 、localStorage 与cookie 的异同点

    cookie 容量4kb,默认各种浏览器都支持,缺陷就是每次请求,浏览器都会把本机存的cookies发送到服务器,无形中浪费带宽. userdata,只有ie支持,单个容量64kb,每个域名最多可存1 ...

  7. 页面之间跳转传参数不使用cookie和url的方法,sessionStorage,localStorage

    页面之间跳转传参数不使用cookie和url的方法,sessionStorage,localStorage 刚步入工作不久的小白,最近在做一个传感器网站项目的时候是用cookie存取数据,因为网站面向 ...

  8. 浅谈 sessionStorage、localStorage、cookie 的区别以及使用

    1.sessionStorage.localStorage.cookie 之间的区别 相同点 cookie 和 webStorage 都是用来存储客户端的一些信息 不同点 localStorage l ...

  9. 在JavaScript中操作Cookie

    在Windows系统中,cookie通常是被储存在C:\Documents and settings\用户名\cookie目录下(如果系统在C盘).其实每个cookie实际上就是一个文本文件,里面是用 ...

最新文章

  1. 计算几何题中的英语生词
  2. android路由器 设备数,手机查看wifi连接人数_手机查看wifi连接设备数量-192路由网...
  3. 第七讲:数据契约(2)
  4. php获取函数里参数吗,php函数中获取参数信息方法(记录)
  5. 通用计算机系统的工作方式,通用计算机操作系统典型体系结构综述
  6. 日更第8期-2015-3-23-如何科学地使用因特网-第三讲-为什么要用Git Bash?咱们用Github for Windows吧!(上)...
  7. 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
  8. 通讯录系统课程设计——链表实现——c语言
  9. win11开机音效设置的方法
  10. PostgreSql扩展(EXTENSION )
  11. 程序员写简历的注意事项
  12. Windows Message ID
  13. egg项目和DVA项目的目录结构比较
  14. C++ 11 内容总结
  15. python爬虫爬取安居客并进行简单数据分析
  16. 做DSP最应该懂得157个问题
  17. limit 后注入_聊一聊 SQLMAP 在进行 sql 注入时的整个流程
  18. 【说透中台】05 | D4模型:中台规划建设方法论概述
  19. office多级列表编号设置
  20. 雷军曾说芯片将如沙子那么便宜,然而沙子涨价促使芯片进一步涨价

热门文章

  1. vue-video-play 记载视频观看时间和还原视频进度
  2. 时间管理——华为成功之宝
  3. android 常用短语的添加,LazyBoard – 常用短语键盘,快速输入很长的句子
  4. 深圳富士康有搞什么啊?又猝死了一个!
  5. 晚上11:45点 ,你进入睡眠状态了吗?
  6. 数据分析的目的和意义(作用)是什么?
  7. Maven 环境踩坑及完整配置
  8. 如何获取屏幕保护程序的密码
  9. python笔记05: 程序结构
  10. PPT立方体三面同色