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

news2024/11/26 2:49:59

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.coloradmin.cn/o/475750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 实现简单的tcp网络通信

文章目录 成品效果图:代码:工具头文件tool.hUI文件代码 ui_widget.h:窗口头文件 widget.h:窗口源文件widget.cpp: 相关代码说明:Qt获取本机ip:Qt 打开,监视服务端端口:Qt 客户端连接服务端:Qt 服…

自建小网站——在idea中如何运行一个vue项目完整过程

这些天Darren洋计划筹建一个属于自己的个人博客空间小网站,其中选择的就是vue项目类型的网站,因为在运行vue项目途中不是特别顺利,现整理了一下流程供大家参考学习。 一、从git上pull一个vue项目 先登录git官网,pull一个vue项目包…

【ElasticSearch】HTTP调用API

文章目录 数据格式HTTP操作索引操作映射操作文档操作(添加数据)高级查询定义数据查询所有文档匹配查询多字段匹配查询关键字精确查询多关键字精确查询指定查询字段过滤字段组合查询范围查询模糊查询*单字段排序多字段排序高亮查询分页查询聚合查询对某个字段取最大值 max对某个…

Channel Distillation: Channel-Wise Attention for Knowledge Distillation 原理与代码解析

paper:Channel Distillation: Channel-Wise Attention for Knowledge Distillation official implementation:https://github.com/zhouzaida/channel-distillation 存在的问题 教师模型传递的知识不够好,学生模型无法准确地从教师模型学习…

java基础语法总复习思维导图 + 重难点+面试题

前言 小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 【需要可修改的思维导图可以私信我&#xff0…

Packet Tracer - 静态路由故障排除

Packet Tracer - 静态路由故障排除 地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 R1 G0/0 172.31.1.1 255.255.255.128 不适用 S0/0/0 172.31.1.194 255.255.255.252 不适用 R2 G0/0 172.31.0.1 255.255.255.0 不适用 S0/0/0 172.31.1.193 255.255…

Windows server 2012 R2系统怎么安装IIS管理器?

Windows server 2012 R2系统怎么安装IIS管理器?今天飞飞和你分享。服务器大本营,技术文章内容集合站发车啦! 首先我们用电脑自带的远程连接桌面工具进入服务器,在任务栏左下角有个服务器管理器,单击打开 打开后在右上…

【致敬未来的攻城狮计划】— 连续打卡第十六天:FSP固件库系统定时器(滴答定时器SysTick)每2秒LED闪烁一次

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

跟着杰哥学强化学习:多臂老虎机问题

多臂老虎机问题 现在有3台外观一模一样的老虎机,每个老虎机的赔率是不同的,摇动一次需要1块钱,现在给你100块钱,如何获取最大的收益。 如果我们知道了每个老虎的赔率,那么只要选择收益最高的那个老虎机就可以了,但现在问题是并不知道每个老虎机的收益。为了简单,我们假…

linux 安装rocketmq

首先准备虚拟机一台 下载linux 64位 jdk1.8(自行百度资源) 下载 | RocketMQ (apache.org) cd /usr/local/ #这是我的本机的现有目录 mkdir rocketmq mkdir jdk 1.借助linux客户端工具,上传刚下载好的jdk安装包到java文件夹 2.借助linux客户端工具,上传刚下载好的二进制安装包…

「C/C++」C/C++软件跨平台思维

博客主页:何曾参静谧的博客 文章专栏:「C/C」C/C学习 目录 相关术语一、编写可移植的代码:二、使用跨平台的C库和框架:三、进行兼容性测试:四、用户界面设计: 相关术语 跨平台思维:是指在软件开…

D-Link DSL-2888A 远程命令执行漏洞(CVE-2020-24581/24579)

漏洞描述 D-Link DSL-2888A AU_2.31_V1.1.47ae55之前版本存在安全漏洞,该漏洞源于包含一个execute cmd.cgi特性(不能通过web用户界面访问),该特性允许经过身份验证的用户执行操作系统命令。 在该版本固件中同时存在着一个不安全认证漏洞(CVE…

【软考网络管理员】2023年软考网管初级常见知识考点(2)- 数据通信技术

【写在前面】也是趁着五一假期前再写几篇分享类的文章给大家,希望看到我文章能给软考网络管理员备考的您带来一些帮助,5月27号也是全国计算机软件考试统一时间,也就不用去各个地方找资料和代码了。紧接着我就把我整理的一些资料分享给大家哈&…

04 KVM虚拟化网络概述

文章目录 04 KVM虚拟化网络概述4.1 Linux Bridge4.2 Open vSwitch 04 KVM虚拟化网络概述 为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux Bridge、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚…

InstructGPT 论文阅读笔记

目录 简介 数据集 详细实现 实验结果 参考资料 简介 InstructGPT 模型是在论文《Training language models to follow instructions with human feedback》被提出的,OpenAI在2022年1月发布了这篇文章。 论文摘要翻译&#x…

AttributeError: ‘Document‘ object has no attribute ‘pageCount‘ PyMuPDF库

这可能是由于PyMuPDF库更新导致的,里面的一些函数名发生了变化 1. AttributeError: Document object has no attribute pageCount 将 pageCount改为 page_count 2. AttributeError: Matrix object has no attribute preRotate 将preRotate改为prerotate 3.Attribut…

关于FFMPEG中的filter滤镜的简单介绍

滤镜的作用主要是对原始的音视频数据进行处理以实现各种各样的效果。比如叠加水印,翻转缩放视频等。 下图表示的正常转码流程,滤镜在解码和编码中间,虚线表示可有可无。 使用命令查看ffmpeg支持的滤镜 ffmpeg -filters 查看某个滤镜的详细参…

k210点亮LED灯

开发板上自带的3个led灯接线如图。 点亮led灯主要使用两个模块,如下: fm.register(pin,function,forceFalse) 【pin】芯片外部 IO 【function】芯片功能 【force】True 则强制注册,清除之前的注册记录 例:fm.register(12, fm.f…

真题详解(有向图)-软件设计(六十二)

真题详解(极限编程)-软件设计(六十一)https://blog.csdn.net/ke1ying/article/details/130435971 CMM指软件成熟度模型,一般1级成熟度最低,5级成熟度最高,采用更高级的CMM模型可以提高软件质量。 初始&am…

RepVGG学习笔记

RepVGG 0 前言1 结构重参数化1.1 结构重参数化第一步(将 C o n v 2 D Conv2D Conv2D算子和 B N BN BN算子融合以及将只有 B N BN BN的分支转换成一个 C o n v 2 D Conv2D Conv2D算子)1.2 结构重参数化第二步(多分支的 3 3 3\times3 33卷积融…