前端存储 Cookie、Web Storage(localStorage 与 sessionStorage)

news/2024/12/4 17:27:37/

cookie

  • 由来:cookie 最初的目的是为了维持前端存储的临时状态而产生的。
  • 原理:
    1. 浏览器发出无状态请求
    2. 服务器返回响应,携带 cookie 信息
    3. 浏览器发出接口请求,携带 cookie 信息
    4. 之后就是前端与服务器建立完成连接后的接口返回了
  • 生成机制
    1. 服务端生成,在 Http Response Header 中生成 Set-Cookie
    2. 客户端生成,通过 document.cookie 设置
  • 属性在这里插入图片描述- 缺陷或需要注意的地方
    1. 误用场景:cookie 设计的初衷用于 维持 HTTP 状态,而不是存储数据。
    2. cookie 有大小的限制,每个 cookie 只能存储 4kb 数据
    3. 性能注意:cookie 会附带在 http 请求上,数据量过大,会导致每个 http 请求就非常庞大

web storage

cookie 的局限性:不建议用于存储值

Html5 中增加的 LoaclStorage / Sessiontorage 本地存储解决方案
有了这两个 storage 以后,cookie 就可以专注维持 Http 状态了,存储的事情可以都交给 WebStorage 去处理:

LocalStorage

  • 特点:以域名纬度,浏览器的持久化存储方案
    PS:数据一旦写进了 localStorage 以后,后面重复访问当前域名,之前存储进去的数据都可以访问到。
  • 大小:5MB
  • 接口:同步接口,阻塞线程
    调用该接口存储数据时,会阻塞线程
  • 使用方法:
    1. 写:localStorage.setItem(key, value)
    2. 读:localStorage.getItem(key)
    3. 示例:
      在这里插入图片描述

Q:什么叫持久化方案?
数据是直接挂在域名下的,重新打开当前浏览器的该域名下依然可以找到已存储的数据。
localStorage 存储持久数据,浏览器关闭后数据不丢失,除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除

sessionStorage

  • 特点:以域名为纬度,浏览器基于会话级别的存储方案
    1. 以当前浏览器为会话窗口进行存储
    2. 新窗口中无法获取到已存储的数据
  • 大小:5M
  • 接口:同步接口,会阻塞线程
  • 使用方法
    1. 读:sessionStorage.setItem(key, value)
    2. 写:sessionStorage.setItem(key)
    3. 示例:
      在这里插入图片描述

sessionStorage 与 localStorage
共同点:都保存在浏览器端,遵循同源策略
不同点:作用域不同


http://www.ppmy.cn/news/58091.html

相关文章

浅聊AIOT

引言 IoT是(Internet of Things)的简称,也就是人们常说的物联网;随着智能硬件的发展和推广,制造成本也随之下降,很多的厂家也慢慢地拥抱网络互联,逐步实现设备互联,也就进入了人们常说的万物互联时代。虽然…

IDEA常用提升效率的操作小记

IDEA目前是使用最广泛的Java开发工具之一了,虽然是收费的,但是也提供了免费的社区版,并且收费版也支持使用github的开源项目,使用免费license,虽然每年都要续,我用的就是开源项目申请的免费license。 开发…

FM33A048B I2C

I2C 模块实现MCU 与外部I2C 接口器件之间的同步通信,硬件实现串并转换。支持I2C 的主机模式,不支持从机模式和多主机模式。 特点: ⚫ 只支持I2C 主机模式, 不支持从机模式和多主机模式 ⚫ 支持7 位或10 位从机地址 ⚫ 传输速度支持标准模式(1…

亚马逊云科技赋能客户,为海思科打造安全高效的营销业务中台系统

羽翼渐丰,翱翔云端 携手亚马逊云科技,打造互联网级企业解决方案 秉承“为客户创造价值”的理念,在公司发展过程中,博智信息先后服务了众多知名企业,客户行业覆盖制造、零售、餐饮、科技、电子等。经过近20年的发展&a…

6. 计算机网络

6. 计算机网络 常见面试题 说说计算机网络有哪两种通信方式?⭐⭐⭐ 第一种方式:客户-服务器方式。这种传统的方式是互联网上最常见的方式。客户是服务请求方,服务器是服务提供方。 C/S模型有一个特例,那就是B/S(Browse/Server)模型,即浏览器/服务器模式,也叫B/S结构。…

ERTEC200P-2 PROFINET设备完全开发手册(7-1)

7. 配置模块及自定义模块 7.1.1 PN设备的基本模型 初次接触PN的开发者,最容易出现的错误就是设备的实际配置与TIA的组态不一致。为了开发的过程更加顺利,非常有必要掌握PN设备的基础模型。PN设备的基本模型如下图描述: PN设备的基本构成是插…

10. Docker——Containerd

本章讲解知识点 容器运行时(Container Runtime)ContainerdContainerd 与 Docker 命令对比1. 容器运行时(Container Runtime) 容器运行时(Container Runtime)是一种程序,用于管理和运行容器镜像。它可以在计算机上创建和运行容器,提供容器隔离的环境,以及与其他计算机…

MySQL——存储过程和函数从零基础到入门必学教程(涵盖基础实战)

目录 文章目录 前言 一、创建存储过程 二、在存储过程中使用变量 1.定义变量 2.为变量赋值 三、光标的使用 1.打开光标 2.打开光标 3.使用光标 4.关闭光标 四、流程控制的作用 1.IF语句 2.CASE语句 3.LOOP语句 4.LEAVE语句 5.ITERATE语句 6.REPEAT语句 7.WHIL…