1、Cookie

特点:存储大小4KB左右;可设置失效时间;通信时会携带在HTTP头中,使用cookie保存过多数据会影响性能。

注意:cookie的跨域可以理解为跨域名,只要二级域名相同,不涉及到端口,数据就是共享的。

实用场景:Cookie和session结合使用,通信时后端生成sessionId存储到Cookie中,用户每次请求都会携带这个sessionId,这样服务端就知道是谁发起的请求,从而响应相应的信息。(可能受到csrf攻击)

【session 依赖于cookie实现存储在服务端,不同于sessionStorage存储在客户端】

Cookie的字段:

  • Name:cookie的名称
  • Value:cookie的值,对于认证cookie,value值包括web服务器所提供的访问令牌;
  • Size: cookie的大小
  • Path:可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。
  • Domain:可以访问该cookie的域名,Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。
  • HTTP: 该字段包含HTTPOnly 属性 ,该属性用来设置cookie能否通过脚本来访问,默认为空,即可以通过脚本访问。
  • Expires/Max-size : 此cookie的超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效

Cookie的使用:

方式一:http response header中的set-cookie,默认情况下,domain 被设置为设置 Cookie 页面的主机名,可指定过期时间。

Set-Cookie: id=a3fWa; Expires=Wed, 11 Oct 2022 06:30:00 GMT;

方式而:通过document.cookie可以读写cookie

document.cookie='userName=hello;domain=.aaa.com'

2、SessionStorage

特点:存储大小5MB左右;存储再本地窗口关闭时会清空数据;SessionStorage只有在同一浏览器的同一窗口下才能够共享,有跨域限制,不能被爬虫爬取

实用场景:SessionStorage具有时效性,所以可以用来存储一些网站的游客登录的信息,还有临时的浏览记录,当关闭网站之后,这些信息也就随之消除了。

SessionStorage的使用:

// 保存数据到 sessionStorage
sessionStorage.setItem('key', 'value');// 从 sessionStorage 获取数据
let data = sessionStorage.getItem('key');// 从 sessionStorage 删除保存的数据
sessionStorage.removeItem('key');// 从 sessionStorage 删除所有保存的数据
sessionStorage.clear();// 获取某个索引的Key
sessionStorage.key(index)

3、LocalStorage

特点:存储大小跟SessionStorage相同5MB左右;本地持久储存,除非主动清理数据才会消失;有跨域限制,不能被爬虫爬取

实用场景:JWT实现鉴权时,一把将token存在LocalStorage

LocalStorage的使用同SessionStorage

总结:

  • cookies: 在HTML5标准前本地储存的主要⽅式,优点是兼容性好,请求头⾃带cookie⽅便,缺点是⼤⼩只有4k,⾃动请求头加⼊cookie浪费流量,每个domain限制20个cookie,使⽤起来麻烦,需要⾃⾏封装;
  • localStorage:HTML5加⼊的以键值对(Key-Value)为标准的⽅式,优点是操作⽅便,永久性储存(除⾮⼿动删除),⼤⼩为5M,兼容IE8+ ;
  • sessionStorage:与localStorage基本类似,区别是sessionStorage当⻚⾯关闭后会被清理,⽽且与cookie、localStorage不同,他不能在所有同源窗⼝中共享,是会话级别的储存⽅式;

补充:

  • IndexedDB: 是被正式纳⼊HTML5标准的数据库储存⽅案,它是NoSQL数据库,⽤键值对进⾏储存,可以进⾏快速读取操作,⾮常适合web场景,同时⽤JavaScript进⾏操作会⾮常便。

参考:cookie、sessionStorage、localStorage 详解及应用场景 - SegmentFault 思否

浏览器本地存储(cookie、sessionStorage和localStorage)相关推荐

  1. 浏览器本地存储Cookie、LocalStorage、SessionStorage

    文章目录 浏览器本地存储 浏览器本地存储 浏览器本地存储方式 (1)Cookie Cookie 是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个 ...

  2. JavaScript 本地存储、sessionStorage和localStorage

    文章目录 本地存储特性 window.sessionStorage window.localStorage 案例:记住用户名 本地存储特性 window.sessionStorage 存储数据: se ...

  3. 本地存储-cookie|localStorage|sessionStorage|indexedDB

    本地存储 本地存储 cookie 如何工作 问题 cookie标准限制 属性 expires|max-age domain&path secure HttpOnly 设置cookie 服务端设 ...

  4. cookie、Session、Token、sessionStorage、localStorage简介__Token放在 cookie, sessionStorage 和 localStorage中区别

    cookie.Session.Token.sessionStorage.localStorage简介 cookie 是一个非常具体的东西,只得是浏览器里永久存储的一种数据,是浏览器实现的一种数据存储功 ...

  5. IndexedDB浏览器本地存储、缓存、数据库、介绍

    目录 1.前言 2.IndexedDB简介 3.IndexedDB使用场景 4.IndexedDB特点 4.1.非关系型数据库 NoSql 4.2.持久化存储 4.3.异步操作 4.4.支持事务 4. ...

  6. 快来看啊 --- --- --- >>>> 浏览器本地存储 ~~~

    1. 浏览器本地存储方式及使用场景 (1)Cookie Cookie是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个问题,Cookie就出现了. ...

  7. 【前端浏览器】浏览器缓存(http缓存) 浏览器本地存储(总结)

    浏览器缓存 && 浏览器本地存储(总结) 文章目录 浏览器缓存 && 浏览器本地存储(总结) 写在前面 一.浏览器缓存(http缓存) 相关术语 1. 对浏览器的缓存机 ...

  8. html5客户端本地存储之sessionStorage及storage事件

    首先您可以看一下<JavaScript本地存储实践(html5的localStorage和ie的userData)> sessionStorage和上文中提到的localStorage非常 ...

  9. 浏览器本地存储的方式~~~~~

    本地存储的方式:localStorage 和sessionStorage. 一.localStorage 1.特点:1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样).            ...

  10. Vue2(九):浏览器本地存储、组件自定义事件、TodoList自定义事件

    Vue2学习笔记:第九章 一.浏览器本地存储(WebStorage) 1.相关API 2.一些注意点 3.TodoList中的本地存储 二.组件自定义事件 1.引出组件自定义事件 2.怎么给组件绑定? ...

最新文章

  1. OMG!Semaphore里面居然有这么一个大坑!
  2. 深度学习核心技术精讲100篇(四十七)-做推荐系统之余,我们该思考什么?
  3. spring cloud 熔断_Spring Cloud 熔断器/断路器 Hystrix
  4. linux/windows上STM32固件烧写工具的开发demo
  5. IsPostBack须要注意的地方,这些都不是POSTBACK动作
  6. 在visual studio code中配置python以及解决中文乱码问题
  7. .NET中删除确认框的实现
  8. 云服务售后服务调研,参与问卷送福利!
  9. linux 分区顺序 boot,关于Liunx下的硬盘分区问题(/boot分区)?
  10. android 不透明度
  11. 计算机组成原理—第4章数值的机器运算
  12. Udacity课程脉络-统计学基础(二)- t分布
  13. 两种异步时钟同步化区别分析
  14. java十六进制转为十进制,Java将十六进制转换为十进制
  15. 如何连接新浪sae共享数据库
  16. fx3u4ad一adp说明书_三菱FX3U-4AD-ADP使用方法
  17. CentOS部署单机Presto
  18. 大数据分析——Matplotlib入门教程
  19. 在数据帧转发过程中源/目标IP地址,源/目标MAC地址的变化释疑---划重点!!!
  20. 阿里实习生电话面试果断被鄙视

热门文章

  1. Android开发笔记(八十六)几个特殊的类
  2. 267. Palindrome Permutation II --back tracking 以及palindrome 的优化方法ing
  3. PUT上传POC--Put2Poc.py
  4. 【绝对原创】最新研究成果,EFS加密文件真的可以解密!各位不要放弃哈~
  5. 字节流通向字符流的桥梁:InputStreamReader
  6. 使用firefox44版本,弃用chrome
  7. 【转】学习理论,注重细节
  8. 《基于MFC的OpenGL编程》Part 8 Colors
  9. 描述最常用的5种http方法的用途_RESTful API系列之HTTP基础
  10. antd confirm如何隐藏ok按钮_操作系统如何保护重要文件,Windows 7资源管理器设置隐藏文件夹...