浅聊Web Storage(localStorage 和 sessionStorage)、cookie的使用场合
Web Storage(localStorage 和 sessionStorage)、cookie
- 一、Cookie
- 二、Web Storage
- localStorage
- sessionStorage
- 与 Cookies 的比较
一、Cookie
Cookies 主要用于以下几种情况:
- 会话管理(Session Management): 登录、购物车、游戏得分,或者任何服务端应当记住的信息。
- 个性化(Personalization): 用户偏好设置、主题和其他设置。
- 跟踪(Tracking): 记录和分析用户行为。
详细说明如下:
-
会话管理
当用户在网站上进行操作时,服务器需要通过某种方式来识别各个请求是否来自同一浏览器。例如,在电子商务网站上,用户加入购物车中的商品必须与该用户的会话关联起来,这样在结账时网站才能发送正确的商品信息。Cookies 可以用于存储唯一的会话标识符,从而帮助维持用户会话状态。 -
个性化
站点可以使用 Cookies 来存储用户个性化设置,如语言偏好、地区设置或字体大小等。通过读取这些 Cookies,网站可以在用户每次访问时提供定制化的体验,无需用户重新配置其偏好设置。 -
跟踪
Cookies 经常用于网站分析,网站会利用 Cookies 来追踪用户在网站上的路径和行为。这有助于网站所有者了解用户偏好,改进网站内容和营销策略。广告网络也经常使用 Cookies 来收集有关用户兴趣的数据,并展示目标广告。 -
安全性
有些 Cookies(通常称为安全 Cookies)用于加强网络安全,比如防止 CSRF 攻击(跨站请求伪造),它们可以确保请求是由用户明确意愿发起的。 -
跨站点请求
Cookies 还可以用于实现第三方服务,例如社交媒体按钮、嵌入式内容或在线聊天服务。这些功能可能需要跨多个网站工作,并依赖于特定的 Cookies 来确保配置和用户偏好能够随处可用。
注意事项
- 隐私权:因为 Cookies 可以用于跟踪用户在网站上甚至跨站点的行为,所以涉及到隐私问题。欧盟的《通用数据保护条例》(GDPR)和其他隐私法规要求网站获取用户同意才能使用 Cookies 进行跟踪。
- 限制:一些现代浏览器在默认隐私模式下会限制跨站点跟踪 Cookies,尤其是第三方 Cookies。用户还可以自行清除 Cookie,或者设置浏览器禁用 Cookies。
- 替代方案:随着 Web 技术的发展,某些 Cookies 的用途可能会被新技术所替代,如 Web Storage(localStorage 和 sessionStorage)、IndexedDB 或服务器端会话。
在设计应用程序时应慎重考虑使用 Cookies 的目的,并确保遵守相关的法律法规,同时为用户提供透明的隐私选项。
Cookies 通常有大小限制(每个域名下约 4 KB),因此只包含必要的数据。通常,Cookies 存储的是引用数据,如标识符或令牌,而更详细的数据则存储在服务器端。
二、Web Storage
Web Storage API 提供了两种在客户端存储数据的机制,这两种机制分别是 localStorage 和 sessionStorage。它们都允许网页存储键值对,以便在页面加载时可以读取使用。不过,它们的主要区别在于数据存储的生命周期和作用域。
localStorage
localStorage 用于长期保存数据,即使关闭浏览器后数据仍然保存在用户的设备上。除非明确通过脚本删除或用户清除浏览器缓存,否则这些数据不会消失。
特点:
- 容量:通常有较大的存储限额(至少5MB)。
- 持久性:数据永久保存,除非用户手动删除或由脚本清除。
- 作用域:同源的所有窗口、标签页都能够共享相同的 localStorage 数据。
- 应用场景:适用于需要跨会话持久保存的数据,如用户偏好设置、主题选择等。
使用示例:
// 设置 localStorage 中的键值对
localStorage.setItem('username', 'JohnDoe');// 获取存储的值
const username = localStorage.getItem('username');// 删除一个键值对
localStorage.removeItem('username');// 清空所有存储
localStorage.clear();
sessionStorage
与 localStorage 相比,sessionStorage 是为了在单个会话中存储数据而设计的。这意味着存储在 sessionStorage 中的数据只在页面的单次会话期间可用,即页面关闭后数据就被清除了。
特点:
- 容量:通常有较大的存储限额(至少5MB)。
- 持久性:数据只在页面会话期间存在,当页面会话结束(页面关闭)时数据就会丢失。
- 作用域:数据只在创建它的窗口或标签页中有效;即使是相同的页面,在不同的标签页中也无法共享 sessionStorage 数据。
- 应用场景:适用于某些数据只应在页面当前生命周期内保留,如表单输入数据或一次性登录验证。
使用示例:
// 设置 sessionStorage 中的键值对
sessionStorage.setItem('sessionKey', '12345');// 获取存储的值
const sessionValue = sessionStorage.getItem('sessionKey');// 删除一个键值对
sessionStorage.removeItem('sessionKey');// 清空所有存储
sessionStorage.clear();
与 Cookies 的比较
- Web Storage 提供的存储容量更大。
- Web Storage 的语法更简洁易用。
- Cookies 每次都会随 HTTP 请求发送到服务器,而 Web Storage 仅存储在本地,不参与服务器通信。
- Web Storage 提供了更加具体的控制范围,例如你可以控制数据存储的持久性(localStorage)或是会话级别(sessionStorage)。
尽管 Web Storage 提供了许多优点,但在考虑用户隐私和数据安全性时,开发者还需谨慎处理敏感数据,并根据实际需求合理选择何时使用 Cookies、localStorage 或 sessionStorage。
相关文章:
浅聊Web Storage(localStorage 和 sessionStorage)、cookie的使用场合
Web Storage(localStorage 和 sessionStorage)、cookie 一、Cookie二、Web StoragelocalStoragesessionStorage与 Cookies 的比较 一、Cookie Cookies 主要用于以下几种情况: 会话管理(Session Management): 登录、购…...
C语言输入输出缓冲机制
文章目录 输入输出缓冲机制概述为什么要有缓冲区缓冲区的类型引发缓冲区的刷新 原理实现 输入输出缓冲机制 概述 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入 或者输出的数…...
javaEE-03-cookie与session
文章目录 Cookie创建Cookie获取Cookie更新CookieCookie 生命控制Cookie 有效路径 Session 会话创建和获取sessionSession 域数据的存取Session 生命周期控制浏览器和 Session 之间关联 Cookie Cookie 是服务器通知客户端保存键值对的一种技术,客户端有了 Cookie 后,…...
EtherNet/IP转Profinet协议网关(经典配置案例)
怎么样才能把EtherNet/IP和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题,作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题,名为JM-PN-EIP,下面是详细介绍。 一,设备主要功能 1、捷米特J…...
华为云依赖引入错误
问题:记录一次项目加在华为云依赖错误,如下: 错误信息:Could not find artifact com.huawei.storage:esdk-obs-java:pom:3.1.2.1 in bintray-qcloud-maven-repo (https://dl.bintray.com/qcloud/maven-repo/) 找到本地仓库&#…...
【Ubuntu】Ubuntu 配置镜像源(ARM)
【Ubuntu】Ubuntu 配置镜像源(ARM) 零、起因 最近在QEMU中安装了个ubuntu-24.04-live-server-arm64,默认是国外的软件源,很慢,故替换到国内。 壹、替换 源地址(清华源) https://mirror.tun…...
速腾聚创激光雷达复现FAST-LIO
目录 1.软件环境 2.测试执行 3.代码学习 3.1.找主节点代码文件 3.2.整体流程结构 3.3.具体函数理解 记录复现FAST-LIO算法的过程和,代码梳理和理解 1.软件环境 Windows 10(64bits) VMware 16 Pro Ubuntu 20.04 ROS Noetic FAST-LIO的简化版、注释版。感谢…...
k8s核心知识总结
写在前面 时间一下子到了7月份尾;整个7月份都乱糟糟的,不管怎么样,日子还是得过啊, 1、7月份核心了解个关于k8s,iceberg等相关技术,了解了相关的基础逻辑,虽然和数开主线有点偏,但是…...
语言模型及数据集
一、定义 1、语言模型的目标是估计序列的联合概率,一个理想的语言模型就能够基于模型本身生成自然文本。 2、对一个文档(词元)序列进行建模, 假设在单词级别对文本数据进行词元化。 3、计数建模 (1)其中…...
linux如何卸载python3.5
卸载: 1、卸载python3.5 sudo apt-get remove python3.5 2、卸载python3.5及其依赖 sudo apt-get remove --auto-remove python3.5 3、清除python3.5 sudo apt-get purge python3.5 或者 sudo apt-get purge --auto-remove python3.5...
【BUG】已解决:TypeError: expected string or bytes-like object
TypeError: expected string or bytes-like object 目录 TypeError: expected string or bytes-like object 【常见模块错误】 【解决方案】 常见原因及解决方法 示例代码 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰…...
在linux上面用drissionpage自动化遇到反爬?
目录 一、反爬内容1、案例12、案例2 二、后来发现的问题解决 一、反爬内容 1、案例1 反爬的响应文本返回如下:爬虫均能精准识别,测试链接:https://ziyuan.baidu.com/crawltools/index)非正常爬虫访问时:返回的压缩报文内容无法直接识别,可一定程度上保护站点信息安…...
vue3大事件管理系统 === 首页 layout 文章分类页面 -
目录 首页 layout 架子 [element-plus 菜单] 基本架子拆解 登录访问拦截 用户基本信息获取&渲染 退出功能 [element-plus 确认框] 文章分类页面 - [element-plus 表格] 基本架子 - PageContainer 文章分类渲染 封装API - 请求获取表格数据 el-table 表格动态渲染 …...
堆的基本实现
一、堆的概念 在提出堆的概念之前,首先要了解二叉树的基本概念 一颗二叉树是节点的有限集合,该集合: 1、或者为空; 2、或者由一个根节点加上两颗分别称为左子树和右子树的两颗子树构成; 堆就是一颗完全二叉树&…...
Ubuntu上编译多个版本的frida
准备工作 Ubuntu20(WSL) 略 安装依赖 sudo apt update sudo apt-get install build-essential git lib32stdc-9-dev libc6-dev-i386 -y nodejs 去官网[1]下载nodejs,版本的话我就选的20.15.1: tar -xf node-v20.15.1-linux-x64.tar.xz 下载源码 …...
概率论三大分布
目录 基本概念 卡方分布(χ分布): t分布: F分布: 延伸 卡方分布在哪些具体情况下最适合用于数据分析? t分布在大样本情况下的表现与正态分布相比如何? F分布在进行方差比较时与t分布的区…...
Spring系统学习-基于XML的声明式事务
基本概念 在Spring框架中,基于XML的事务管理是一种通过XML配置文件来管理事务的方式。Spring提供了强大的事务管理功能,可以与多种持久化技术(如JDBC、Hibernate、JPA等)结合使用。以下是如何在Spring中使用基于XML的事务管理的基…...
iOS中的MVVM设计模式
目录 前言 一、MVVM简介 二、MVVM的核心思想 三、MVVM的优势 四、MVVM在iOS中的实现 1. 创建Model 2. 创建ViewModel 3. 创建View 4. 主入口 总结 前言 随着iOS开发的发展,构建可维护和可扩展的代码架构变得至关重要。Model-View-ViewModel (MVVM) 是一种…...
ES中的数据类型学习之ARRAY
Arrays | Elasticsearch Guide [7.17] | Elastic 中文翻译 :Array Elasticsearch 5.4 中文文档 看云 Arrays In Elasticsearch, there is no dedicated array data type. Any field can contain zero or more values by default, however, all values in the a…...
vue网络请求
post网络请求 import axios from axios import {ElMessage, ElLoading} from "element-plus" import { nextTick } from "vue" import JSONbig from json-bigint import { userToken } from "/constants/Constant.js";const defaultConfig {bas…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
