cookie、Web Storage
前端知识汇编
- 1. cookie
- 1.1 cookie的限制
- 1.2 cookie的构成
- 1.3 JavaScript中的cookie
- 1.4 子cookie
- 1.5 使用cookie的注意事项
- 2. Web Storage
- 2.1 Storage类型
- 2.2 sessionStorage对象
- 2.3 localStorage对象
- 2.4 存储事件
- 2.5 限制
1. cookie
cookie是客户端与服务器端进行会话时使用的一个能够在浏览器本地化存储的技术
1.1 cookie的限制
- 与特定域绑定,不被其他域访问,保证它不会被恶意利用
- 存储大小有限制,每个cookie不超过4kb(超出静默删除)
- 存储数量有限制,不同浏览器不同限制数量(一般每个域不超过50个在任何浏览器就能兼容;Safari和Chrome没有硬性限制)
1.2 cookie的构成
- 名称:唯一标识cookie的名称。不区分大小写,但为了兼容一些服务器软件最好保持区分大小写不同名。
- 值:存储在cookie里的字符串值。
- 域:cookie有效的域。发送到这个域的所有请求都会包含对应的cookie。
- 路径:请求URL中包含这个路径才会把cookie发送到服务器。
- 过期时间:表示何时删除cookie的时间戳。GMT格式。
- 安全标识:设置之后,只有使用SSL安全连接(https)的情况下才会把cookie发送到服务器。
1.3 JavaScript中的cookie
- 增
- BOM的document.cookie返回包含页面中所有有效的cookie的字符串(根据域、路径、过期时间和安全设置);
- 所有名和值都是URL编码,需要使用decodeURIComponent()解码;
- 通过document.cookie可以设置新的cookie字符串,不会覆盖之前的cookie,除非设置的是已有的cookie
- 设置cookie时只有cookie名和值是必须的
document.cookie = `${name}=${value};${expires}=${expiration_time};${path}=${domain_path};${domain}=${domain_name};${secure};`
- 读取
通过保存格式去解析document.cookie返回的字符串 - 删除
只需要把cookie的过期时间设为过去就能自动删除
1.4 子cookie
子cookie是在单个cookie存储的小块数据,本质上是使用cookie的值在单个cookie中存储多个键值对,来绕过浏览器对每个域cookie数的限制。
如:
name=name1=value1&name2=value2&name3=value3&name4=value4&name5=value5&name6=value6
1.5 使用cookie的注意事项
- 有一种HTTP-only的cookie可以在浏览器和服务器上设置,但只能在服务器上读取,js无法取得这种cookie的值
- 所有cookie都会作为请求头部由浏览器发送给服务器,所以cookie越大,请求完成的时间越长,需要考虑性能问题
- cookie不是保存在安全的环境中的,不要在cookie中保存敏感信息
2. Web Storage
Web Storage提供在cookie之外的存储会话数据的途径,提供跨会话持久化存储大量数据的机制。分为localStorage永久存储机制对象和sessionStorage跨会话存储机制对象。
2.1 Storage类型
Storage类型用于保存名/值对数据,存储上限有浏览器决定。方法:
clear():删除所有值;不在firefox中实现。getItem(name):取得给定name的值。key(index):取得给定位置的名称(不是值)。removeItem(name):删除给定name的名/值对。setItem(name, value):设置给定name的值。
Storage只能保存字符串类型,非字符串类型会自动转为字符串,在存取时要注意数据类型变化。
2.2 sessionStorage对象
- sessionStorage对象只存储会话数据,浏览器关闭时数据就会清掉。
- 因为sessionStorage对象与服务器会话紧密相关,所以在运行本地文件时不能使用。
- 现代浏览器用同步阻塞的方式存储数据;老版IE用异步的方式实现数据写入,会导致给数值赋值的时间和数据写入磁盘的时间存在延迟(少量数据时可以忽略不计),在IE8中可以在数据赋值前调用
begin()、之后调用commit()方法来强制坚数据写入磁盘。
2.3 localStorage对象
- 要访问同一个localStorage对象,页面必须来自用一个域(子域不可)、在相同的端口上使用相同的协议
- 存储在localStorage中的数据会保留到通过js删除或用户清空浏览器缓存。不会因为页面刷新、关闭窗口、标签页或重启浏览器而丢失。
2.4 存储事件
当Storage对象发生变化时(不区分sessionStorage和localStorage),都会在文档上触发storage事件。这个时间对象有以下4个属性:
- domain:存储变化对应的域
- key:被设置或删除的值
- newValue:键被设置的心智,若键被删除则为null
- oldValue:键变化之前的值
可以用以下代码监听到:
window.addEventListener("storage",(event) => console.log(event)
)
2.5 限制
- 客户端数据的大小限制是按照每个源(协议、域、端口)来设置的,因此每个源有固定大小的数据存储空间。
- 不同浏览器给localStorage和sessionStorage设置了不用的空间限制,但大多是会限制为每个源5MB
相关文章:
cookie、Web Storage
前端知识汇编 1. cookie1.1 cookie的限制1.2 cookie的构成1.3 JavaScript中的cookie1.4 子cookie1.5 使用cookie的注意事项 2. Web Storage2.1 Storage类型2.2 sessionStorage对象2.3 localStorage对象2.4 存储事件2.5 限制 1. cookie cookie是客户端与服务器端进行会话时使用…...
【rk3568】01-环境搭建
文章目录 1.开发板介绍1.1相关资源:1.2接口布局1.3屏幕1.4核心板引脚可复用资源 2.环境搭建2.1安装依赖包2.2git配置2.3安装sdk2.4sdk介绍2.5sdk编译 3.镜像介绍 1.开发板介绍 开发板:atk-rk3568开发板 eMMC:64G LPDDR4:4G 显示屏…...
编程笔记 html5cssjs 036 CSS概述
编程笔记 html5&css&js 036 CSS概述 一、什么是 CSS?二、样式非常重要三、CSS 语法四、CSS 注释五、示例 CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式…...
Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)
文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…...
多级缓存架构(三)OpenResty Lua缓存
文章目录 一、nginx服务二、OpenResty服务1. 服务块定义2. 配置修改3. Lua程序编写4. 总结 三、运行四、测试五、高可用集群1. openresty2. tomcat 通过本文章,可以完成多级缓存架构中的Lua缓存。 一、nginx服务 在docker/docker-compose.yml中添加nginx服务块。…...
写点东西《Docker入门(上)》
写点东西《Docker入门(上)》 环境变量 Docker 镜像 Docker CMD 与 ENTRYPOINT 有什么区别 Docker 中的网络: Docker 存储: Docker 是一个工具,允许开发人员将他们的应用程序及其所有依赖项打包到一个容器中。然后&…...
chatgpt实用技巧之二反问式提示
大家好,今天跟大家讲实用gpt的小技巧二、反问式提示 有时候不知道怎么给 GPT 提示词,这时候,就可以反问 GPT 如何更好地给提示词。如图片所示 更详细内容可以看下这篇: 按照 GPT 给出的:故事设定角色故事发展主题结局…...
【数据结构和算法】奇偶链表
其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:分离节点后合并 三、代码 3.1 方法一:分离节点后合并 四、复杂度分…...
MVC框架
文章目录 JSP 和 ServletMVC 的演进1. JSP Model 12. JSP Model 23. MVC 的一般化4. MVC 的变体 总结 JSP 和 Servlet 如果你有使用 Java 作为主要语言开发网站的经历,那么你一定听过别人谈论 JSP 和 Servlet。其中,Servlet 指的是服务端的一种 Java 写…...
学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研
之前博客介绍了NeRF-SLAM,其中对于3D Gaussian Splatting没有太深入介绍。本博文对3D Gaussian Splatting相关的一些工作做调研。 学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客文章浏览阅读967次,点赞22次࿰…...
Github Copilot 的使用方法和快捷键
Github Copilot是一个基于人工智能技术的代码自动补全工具,它可以为开发者提供实时的代码建议和自动生成代码片段。本文将详细介绍如何安装、设置和使用Github Copilot,并提供一些常用的快捷键来提高开发效率。 1. 安装和设置 1.1 下载并安装VS Code …...
开源iMES工厂管家 - 详细安装部署指南(图解)- 全网独稿
目录 一、服务器环境: 二、部署构成总览: 三、下载 node-v16.17.1-win-x64:Index of /download/release/v16.17.1/ 四、绿色安装 node-v16.17.1-win-x64 五、配置环境变量 六、检查 node-v16.17.1-win-x64 是否成功 七、执行命令组,安装组库与各种依赖 vue3环境配置…...
Codeforces Round 919 (Div. 2)
Problem - A - Codeforces n个约束条件 a x 求出满足n个约束条件的整数的个数 大于等于x,取最大的 小于等于x,取最小的 然后不等于x的,记录在区间范围内的个数,减去这些 #include<bits/stdc.h> #define endl \n #define …...
面向经验丰富的开发人员的最佳 Linux 发行版
在深入研究最佳 Linux 发行版之前,让我们回顾一下历史。到 2021 年,Linux 操作系统已经有 30 年的历史了,从作为开发者 Linus Torvalds 的个人项目开始,它已经走过了很长一段路。最初发布时,其源代码被分发给用户&…...
Rust-借用检查
Rust语言的核心特点是:在没有放弃对内存的直接控制力的情况下,实现了内存安全。 所谓对内存的直接控制能力,前文已经有所展示:可以自行决定内存布局,包括在栈上分配内存,还是在堆上分配内存;支…...
xcode安装及运行源码
抖音教学视频 目录 1、xcode 介绍 2、xcode 下载 3、xocde 运行ios源码 4、快捷键 1、xcode 介绍 Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有…...
x-cmd pkg | czg - git commit 智能生成工具
目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 czg 源于 commitizen/cz-cli 交互插件中 cz-git 的延伸项目,重新使用 TypeScript 编写的零依赖独立的 Node.js 命令行工具。旨在使用交互友好的方式,辅助用户生成规范的 git commit message 约…...
Go的并发练习题目
经典并发题目 现在有4个协程,分别对应编号为1,2,3,4,每秒钟就有一个协程打印自己的编号,要求编写一个程序,让输出的编号总是按照1,2,3,4,1,2,3,4这样的规律一直打印下去 type Token struct { }func newWorker(id int, ch chan Token, nextC…...
Python 网络编程之粘包问题
【一】粘包问题介绍 【1】粘包和半包 粘包: 定义: 粘包指的是发送方发送的若干个小数据包被接收方一次性接收,形成一个大的数据包。原因: 通常是因为网络底层对数据传输的优化,将多个小数据包组合成一个大的数据块一次…...
旧衣回收小程序搭建:降低企业成本,提高回收效率!
在人们环保意识提升下,旧衣回收行业受到了大众的关注,同时旧衣回收具有门槛低、利润大的优势。在我国,回收行业不仅帮助普通人就业获利,还对环保做出了较大贡献。因此,旧衣回收行业成为了当下的热门商业模式࿰…...
5个步骤打造个性化AI界面:Chatbox主题定制完全指南
5个步骤打造个性化AI界面:Chatbox主题定制完全指南 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox 你是否每天花数小时与AI助手对话,却感觉界面千篇一律?是否在深夜工作时被…...
2026破圈!5款一键生成论文工具亲测,打破思路枯竭,初稿半天搞定
对于学生、科研工作者而言,论文写作往往面临诸多挑战:文献资料繁杂难寻、格式排版反复调整、重复率居高不下、逻辑结构难以梳理,这些痛点严重制约了写作效率与研究成果的呈现质量。随着2026年AI技术的不断突破与优化,各类AI论文写…...
可视化 React 水合(Hydration)问题
以下是 Next.js React 水合(Hydration)问题的 Mermaid 可视化,包含流程图(问题全景)和时序图(时间线视角),以及简要说明。1. 水合问题全景流程图 #mermaid-svg-tjAQ0VWDBl1ii9LA{fo…...
3种方法快速上手Label Studio:终极数据标注工具完全指南
3种方法快速上手Label Studio:终极数据标注工具完全指南 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio …...
破解行业共性管控难题,推动矿山安全体系迭代升级 ——基于视频孪生无感定位的矿山安全体系革新技术方案
破解行业共性管控难题,推动矿山安全体系迭代升级——基于视频孪生无感定位的矿山安全体系革新技术方案一、方案引言国内煤炭矿山长期在人员监管、灾害应急、隐患溯源、空间管控层面沉淀诸多共性难题,佩戴管控流于形式、监测数据失真失实、灾变监测体系快…...
5个AI音频处理神器:用OpenVINO插件让Audacity变身专业音频工作站
5个AI音频处理神器:用OpenVINO插件让Audacity变身专业音频工作站 【免费下载链接】openvino-plugins-ai-audacity A set of AI-enabled effects, generators, and analyzers for Audacity. 项目地址: https://gitcode.com/gh_mirrors/op/openvino-plugins-ai-auda…...
Python潮汐计算新境界:pyTMD如何解决海洋工程中的三大核心挑战
Python潮汐计算新境界:pyTMD如何解决海洋工程中的三大核心挑战 【免费下载链接】pyTMD Python-based tidal prediction software 项目地址: https://gitcode.com/gh_mirrors/py/pyTMD 在海洋工程、港口建设和海洋科学研究中,精确的潮汐预测是确保…...
构建企业级智能交通AI系统:TransGPT多模态大模型生产环境部署指南
构建企业级智能交通AI系统:TransGPT多模态大模型生产环境部署指南 【免费下载链接】TransGPT 项目地址: https://gitcode.com/gh_mirrors/tr/TransGPT TransGPT作为国内首个开源交通大模型,为交通行业智能化转型提供了核心AI能力。该项目专为技术…...
如何告别黄牛票:大麦网自动化抢票神器终极指南
如何告别黄牛票:大麦网自动化抢票神器终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪的演唱会门票而烦恼吗?面对秒光的票源和黄牛的高价&#x…...
终极iOS设备激活解锁解决方案:Applera1n完全指南
终极iOS设备激活解锁解决方案:Applera1n完全指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾经遇到过二手iPhone或iPad无法激活的困境?当你满怀期待地拿到一台设备…...
