前端小白必学:对Cookie、localStorage 和 sessionStorage 的简单理解

前言

CookielocalStoragesessionStorage 作为Web开发领域中广泛采用的三种客户端数据存储技术,它们各自拥有独特的优势、应用场景及限制条件,共同支撑起前端数据管理的多样化需求。也是面试常考题之一,今天就和大家简单谈一下我对它们的理解。

Cookie

Cookie: Cookie 最早被设计用于维护用户会话跟踪状态,例如存储登录凭证、用户偏好设置等。它的特性包括但不限于:

  • 服务器交互性:Cookie 可由服务器设置并通过HTTP头部在客户端与服务器间传递,使得服务器能识别并追踪用户的特定会话信息。
  • 大小限制:单个Cookie的大小通常限制在4KB左右,且大多数浏览器对每个域名下的总Cookie数量也有限制。
  • 生命周期管理:可设置为会话Cookie(浏览器关闭即失效)或持久Cookie(具有指定过期时间)。
  • 安全性考量:尽管存在安全隐患,但可通过HttpOnly标志防止XSS攻击,Secure标志保证HTTPS安全传输。

可以进入开发者模式(F12),打开后点击应用程序

image.png

image.png
点击之后就可以看到当前域名下面的cookie。本地存储就是指的localStorage,会话存储指的是sessionStorage。

localStorage

localStorage: localStorage是HTML5推出的一种持久化的客户端存储方案,特别适合存储不需要与服务器交互的大块数据,例如游戏进度、用户设置等。这是一个非常大的数字了,利用localStorage 存储必要的数据,使得在无网络环境下应用也能提供基本功能。

  • 大容量存储:相比Cookie,localStorage 提供了更大的存储空间,一般不少于5MB,具体依浏览器而定。
  • 持久性:除非主动删除或用户清空浏览器数据,否则数据将永久保留。
  • 简单易用:通过JavaScript的Web Storage API进行操作,支持键值对存储模型。(setItem,getItem用来存储和取出数据)
  • 局限性:受同源策略限制,且不参与网络请求,适合存储非敏感数据。

虽然localStorage 提供了便利的客户端存储能力,但由于其数据未加密且易于访问(特别是对于同源策略下的脚本),所以不适合存储敏感信息,如密码、个人身份信息等。对于这类数据,应考虑使用更安全的存储方式,如HTTPS-only cookie或服务器端会话存储。那么接下来就来介绍一下sessionStorage

sessionStorage

sessionStorage: sessionStorage 与 localStorage 类似,也是HTML5引入的存储机制,主要区别在于数据的有效期。sessionStorage 的数据仅在当前浏览器窗口或标签页中有效,一旦关闭页面,数据就会被清除。

特点

  • 有效期:仅在当前浏览器会话期间有效,标签页或窗口关闭即失效。
  • 容量限制:与localStorage相似,取决于浏览器。
  • 安全性:同样遵循同源策略,不参与网络请求。
  • 使用场景:适合存储临时的用户输入信息或状态,如表单填写过程中的草稿保存。

总结

  • 选择依据:如果需要长期存储用户数据且不随每次请求发送,可以选择localStorage;如果数据只需要在用户当前会话中临时保存,sessionStorage更合适;而cookie常用于需要在服务器和客户端之间传递小量信息,如认证令牌或保持用户会话状态。
  • 安全性考量:对于敏感数据,尽管这些存储方式都受限于同源策略,但最好还是在存储前进行加密处理,特别是使用localStorage和sessionStorage时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863593.shtml

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

相关文章

Python 量化

当涉及到量化金融和数据分析时,Python是一种非常流行的编程语言,因为它拥有丰富的库和工具,适用于处理金融数据、执行统计分析、制定交易策略等任务。下面是一些常用的Python量化金融模块及其功能的详细介绍: ### 1. **pandas** …

揭开大语言模型(LLM)内部运作的算法逻辑

本文探讨了 Anthropic 的突破性技术,以揭示大型语言模型 (LLM) 的内部工作原理,揭示其不透明的本质。通过深入研究LLM Claude Sonnet 的“大脑”,Anthropic 增强了人工智能的安全性和可解释性,为人工智能的决策过程提供了更深入的…

应用部署方式演变

应用部署方式演变 1.传统部署2.虚拟化部署3.容器化部署 1.传统部署 传统的应用程序部署是将多个应用程序直接部署在操作系统上,一旦其中的某个应用程序出现内存泄漏,那么该程序就会大量吞噬系统内容空间,导致其他应用程序无法正常运行。 2.虚…

如何让两个不同网段的直连地址通信(有点意思)

群里一个朋友出了个题:两个路由器接口直连,一个接口IP是1.1.1.1/30,一个接口IP是2.2.2.2/30,如何让它们通信? 群里的朋友们纷纷献策: 1、用PPP方式连接,直接通 2、配对端IP地址同网段的s…

鱼叉式钓鱼

鱼叉式网络钓鱼: 鱼叉式网络钓鱼是一种网络钓鱼形式,它针对特定个人或组织发送定制消息,旨在引发特定反应,例如泄露敏感信息或安装恶意软件。这些攻击高度个性化,使用从各种来源收集的信息,例如社交媒体资…

Face Adapter - 一键面部表情迁移、换脸工具 本地一键整合包下载

Face Adapter是一款高效的人脸编辑适配器,由浙江大学和腾讯联合开发,适用于预先训练的扩散模型,专门针对人脸再现和交换任务。 只需要上传一张源脸和一张参考人脸,就能按照参考人脸的风格生成相同的面部的表情,一键生…

掌握Python编程的深层技能

一、Python基础语法、变量、列表、字典等运用 1.运行python程序的两种方式 1.交互式即时得到程序的运行结果 2.脚本方式把程序写到文件里(约定俗称文件名后缀为.py),然后用python解释器解释执行其中的内容2.python程序运行的三个步骤 python3.8 C:\a\b\c.py 1.先启动python3…

Golang-channel理解

channel golang-channel语雀笔记整理 channelgolang channel的设计动机?chanel的数据结构/设计思考 golang channel的设计动机? channel是一种不同协程之间实现异步通信的数据结构。golang中有一种很经典的说法是要基于通信实现共享内存,而不…

机器学习基础:开源库学习-Numpy科学计算库

目录 Numpy科学计算库 什么是多维数组 数组基础 高维数组 操作和创建数组 Numpy介绍 创建数组 数组的属性 二维数组 三维数组 数组元素的数据类型 创建特殊的数组 np.arange() np.ones() np.zeros() np.eye() np.linspace() np.logspace() asarray() 数组运…

AUTOSAR汽车电子嵌入式编程精讲300篇-智能网联汽车CAN总线-基于电压信号的CAN总线入侵检测系统设计与实现

目录 前言 入侵检测系统研究现状 入侵检测系统建模 CAN总线 入侵检测威胁模型 Deep SVDD模型 入侵检测系统方案设计 挑战和解决方案 差分信号的采集与处理 差分信号的特征提取 入侵检测模型的设计 入侵检测系统性能评估 实验环境设置 不同的车辆状态 不同数量的…

一致性哈希算法golang版本

什么是一致性哈希 一致性哈希(Consistent Hashing)是一种分布式系统中常用的算法,用于在节点(如缓存服务器)之间均匀分配数据。它的核心思想是将所有可能的哈希值组织成一个环形结构,并将数据和节点通过哈…

005 参数绑定处理

文章目录 参数绑定默认支持的参数类型参数绑定使用要求简单类型RequestParam注解 绑定POJO类型绑定集合或者数组类型 参数绑定示例JSP代码Controller代码PO代码 自定义日期参数绑定Converter代码Converter配置 文件类型参数绑定加入依赖包上传页面配置Multipart解析器Controlle…

thymeleaf+mybatis(本文章用于期末考前10分钟速看)

期末速看 pom(了解)application.propertiessql代码Controller控制层视图service: 服务层mapper(dao):持久层entity层(model层,domain层、 bean):对应数据库表,实体类 效果…

谈谈你对AQS的理解

AQS概述 AQS,全称为AbstractQueuedSynchronizer,是Java并发包(java.util.concurrent)中一个核心的框架,主要用于构建阻塞式锁和相关的同步器,也是构建锁或者其他同步组件的基础框架。AQS提供了一种基于FIF…

模拟城市5: 未来之城 全DLC for Mac 下载安装包

模拟城市5:未来之城(SimCity BuildIt)是一款由Maxis开发并由 Electronic Arts(EA)发行的城市建设和管理模拟游戏。这款游戏最初在2014年发布,适用于iOS、Android以及Windows Phone平台,随后在20…

力扣最新详解5道题:两数之和三数之和四数之和

目录 一、查找总价格为目标值的两个商品 题目 题解 方法一:暴力枚举 方法二:对撞指针 二、两数之和 题目 题解 方法一:暴力枚举 方法二:哈希表法 三、三数之和 题目 题解 方法一:排序暴力枚举set去重 …

数据资产治理的智能化探索:结合云计算、大数据、人工智能等先进技术,探讨数据资产治理的智能化方法,为企业提供可靠、高效的数据资产解决方案,助力企业提升竞争力

一、引言 在信息化时代,数据已成为企业最重要的资产之一。随着云计算、大数据、人工智能等先进技术的飞速发展,数据资产治理面临着前所未有的机遇与挑战。本文旨在探讨如何结合这些先进技术,实现数据资产治理的智能化,为企业提供…

【活动感想】筑梦之旅·AI共创工坊 workshop 会议回顾

目录 🌊1. 会议详情 🌊2. 会议回顾 🌍2.1 主持人开场 🌍2.2 元甲-小当家 AI 驱动的创意儿童营养早餐料理机&今天吃什么App 🌍2.3 Steven- A l 心理疗愈认知 🌍2.4 伯棠-诸子百家(xExperts)-多智能…

C++ 文件读写

目录 一、XML文件读写 1、写入XML文件 2、读取XML文件 二、JSON文件读写 1、写入JSON文件 2、读取JSON文件 3、写入JSON文件 4、读取JSON文件 三、CSV文件读写 1、写入CSV文件 2、读取CSV文件 四、Excel文件读写 1、写入Excel文件 2、读取Excel文件 五、INI文件读…

转盘输入法-总

序 转盘输入法,给你的聊天加点新意。它不用常见的九宫格或全键盘,而是把字母摆在圆盘上,一滑一滑,字就出来了,新鲜又直接。 PC屏幕键盘的对比 鉴于屏幕键盘这一新颖界面的局限性,当用户在操作时&#xff…