微信小程序本地存储与Cookie的区别

微信小程序使用session(详细、亲测有效) 使用session会话判断是否同一用户。微信小程序调用用户信息。 阅读详情

微信小程序的本地存储和Web开发中的Cookie都用于在客户端存储数据,但两者在设计目的、存储机制、使用场景等方面存在显著差异。以下从多个维度对比分析:

一、本质与设计目的

1. 微信小程序本地存储

是小程序框架提供的客户端数据存储机制,基于本地文件系统实现,主要用于在小程序内部持久化保存用户数据(如用户设置、缓存内容等),不依赖网络请求,也不与服务器交互直接关联。

2. Cookie

是HTTP协议的一部分,由服务器通过响应头设置,存储在浏览器中,主要用于标识用户身份、维护会话状态(如登录状态),会在每次HTTP请求时自动携带到服务器。

二、存储位置与生命周期

1. 存储位置

小程序本地存储:数据存储在小程序的独立沙箱目录中,与微信客户端的其他数据隔离,仅当前小程序可访问。

Cookie:存储在浏览器的特定目录中,与域名绑定,不同域名的Cookie相互隔离。

2. 生命周期

小程序本地存储:默认持久化存储,除非手动调用删除API(如wx.removeStorageSync)或用户清除小程序数据,否则数据会一直存在。无过期时间机制,需开发者手动管理数据有效期。

Cookie:可设置过期时间(Expires或Max-Age),过期后自动删除。若未设置过期时间,则为会话Cookie,关闭浏览器后自动失效。

三、存储容量与数据类型

1. 存储容量

小程序本地存储:总容量限制约为10MB,单个key存储的数据大小限制为1MB。

Cookie:容量限制严格,通常每个域名下的Cookie总大小不超过4KB,且数量有限(一般为50个左右)。

2. 支持的数据类型

小程序本地存储:支持存储字符串、数字、布尔值、对象、数组等JSON可序列化的数据(存储时会自动转为JSON字符串,读取时需解析)。

Cookie:仅支持字符串类型,复杂数据需手动序列化(如转为JSON字符串)。

四、访问与传输机制

1. 访问方式

小程序本地存储:通过小程序提供的API(如wx.setStorageSync、wx.getStorageSync等)主动读写,完全由开发者控制。

Cookie:通过document.cookie访问,或由浏览器自动管理,开发者可读写但受同源策略限制。

2. 与服务器交互

小程序本地存储:不会自动随网络请求发送到服务器,如需提交数据,需开发者在请求中手动携带。

Cookie:符合条件(如域名匹配、路径匹配)时,会自动随每个HTTP请求(GET、POST等)发送到服务器,无需开发者手动处理。

五、安全性

1. 小程序本地存储

数据存储在客户端,未加密,存在被篡改的风险,不宜存储敏感信息(如密码、令牌等)。

仅当前小程序可访问,相对隔离,但root权限下可能被读取。

2. Cookie

可设置HttpOnly属性,防止JavaScript访问,降低XSS攻击风险。

可设置Secure属性,仅在HTTPS连接中传输,提升安全性。

可设置SameSite属性,限制跨站请求时的发送,降低CSRF攻击风险。

六、适用场景

1. 小程序本地存储适用场景

缓存网络请求结果(如列表数据),减少重复请求。

保存用户偏好设置(如主题、字体大小)。

存储临时数据(如表单草稿)。

跨页面共享数据(非实时同步场景)。

2. Cookie适用场景

维护用户登录状态(如SessionID)。

记录用户浏览历史或偏好(由服务器跟踪)。

实现购物车、用户身份验证等依赖服务器状态的功能。

七、总结对比表

对比维度微信小程序本地存储Cookie
设计目的小程序内数据持久化维护HTTP会话状态
存储容量约10MB(总),1MB(单key)约4KB(单域名)
生命周期持久化,需手动删除可设置过期时间,默认会话级
自动传输否,需手动携带是,随HTTP请求自动发送
安全性无内置安全机制,不适合敏感数据支持HttpOnly、Secure等安全属性
典型场景缓存数据、用户设置登录状态、会话跟踪

综上,小程序本地存储更适合客户端本地数据管理,而Cookie更适合与服务器交互的会话状态维护。在小程序开发中,若需实现类似Cookie的会话管理功能,通常需手动在请求头中携带令牌(如Token),而非依赖Cookie机制。

小程序开发中cookie的使用场景以及方案 总结而言,小程序中的 cookie 可以在一些简单的场景下用于存储和传递数据,但应当注意数据的安全性、容量限制、同源策略和用户隐私权。敏感信息,例如用户的密码、支付信息等,不应当存储在 cookie 中,而应当使用更加安全的方式,例如使用 HTTPS 协议进行数据传输,使用服务器端存储和验证用户信息。在小程序开发中,使用 cookie 是一种常见的方式来在客户端和服务器之间传递和存储数据。小程序中的 cookie 可能受到用户的隐私设置限制,例如用户禁用了 cookie 或限制了 cookie 的使用。 阅读详情

相关推荐

登录验证两种方案:token和cookie以及对比

HTTP无状态,每次请求都要携带cookie,以帮助识别用户身份;服务端也可以向客户端set-cookie,cookie大小限制为4kb;

EmotionComputer 1196

微信小程序在发送请求时携带cookies问题

我在微信小程序的开发过程中发现如果使用wx.request请求时,请求数据传到后端后是不携带cookie的但是,原因是微信开发工具对wx.request进行修改需要经过微信服务器发送,那么我们后台服务就无法获取到cookie,有些时候也无可避免使用cookie做一些鉴权验证,那怎么办呢。启动时可能会报没有定义的错误,请确保dist文件下存在weapp-cookie.js而不为weapp-cookie.es.js,位置完成后直接使用wx.request就能携带cookie请求了。

a1597133323的博客 5956

微信小程序文件下载与打开全攻略:从API原理到跨平台实战

文件操作是移动应用开发中的基础需求,涉及网络请求、本地存储与系统交互等多个技术环节。其核心原理在于通过安全的沙箱机制管理文件读写权限,平衡功能性与安全性。在微信小程序生态中,这一需求通过 FileSystemManager、wx.downloadFile 和 wx.openDocument 等核心API实现技术价值,解决了在受限环境下获取、存储与打开外部文件的关键问题。典型应用场景包括企业内部知识库、教育资料分发及办公文档预览等工具类小程序。本文聚焦于小程序文件下载与打开的完整流程,深入解析临时文件与本地缓

weixin_32390647的博客 316

微信小程序 使用cookie

微信小程序 使用cookie

weixin_44201361的博客 8551

微信小程序抓包与逆向实战:从网络流量到源码还原的技术解析

在移动应用开发与安全领域,网络抓包和代码逆向是两项基础且关键的技术。网络抓包通过代理工具监听和解析HTTP/HTTPS协议流量,其原理在于中间人技术,允许开发者或安全人员分析应用与服务器的数据交互,这对于调试接口、理解业务逻辑和安全审计具有重要价值。代码逆向则侧重于对已编译的应用包进行解构,恢复其可读的代码结构与资源,常用于学习实现原理、进行漏洞挖掘。这两项技术广泛应用于安全研究、竞品分析、隐私保护等场景。本文聚焦于微信小程序这一具体载体,详细阐述了如何利用Fiddler、Charles等工具进行HTTPS

weixin_34268169的博客 389

微信小程序SessionKey泄露漏洞:原理、挖掘与防御实战

会话管理是Web与移动应用安全的核心基础,其核心原理在于通过可信令牌在客户端与服务器间建立并维持用户身份状态。一旦认证机制设计存在缺陷,如错误地将后端业务密钥直接用于身份验证,就会导致严重的逻辑漏洞。从技术价值看,这类漏洞往往危害直观且利用直接,极易造成用户数据泄露、未授权访问等安全事件。在微信小程序开发中,SessionKey作为微信官方提供的会话密钥,本应仅用于敏感数据解密与签名验证,却被部分开发者误用作身份认证凭证,形成了“万能钥匙”式的设计缺陷。应用场景广泛存在于各类小程序业务中,特别是涉及用户隐私

weixin_34006468的博客 318

django开发微信小程序后端登录

一.微信小程序与普通web后端区别 1.小程序端没有cookie只要本地存储 2.小程序必须使用https,在本地开发者工具可以先屏蔽 二.微信小程序登录和鉴权 小程序某些应用场景不适合使用django内置的user登录,因此需要自定义的登录验证方式, 使用jwt的方式是最适合的,但是django-rest-framework-jwt和django-jwt都与内置的user耦合...

weixin_30706507的博客 493

微信小程序Storage深度解析:从原理到实战的存储优化指南

数据存储是客户端开发的核心基础,它决定了应用的响应速度、离线能力和用户体验。其原理在于通过本地持久化机制,将结构化数据以键值对形式保存,减少网络请求并实现状态保持。这项技术的价值在于提升应用性能、支持离线操作及优化交互流畅度。在Web开发中,我们常用localStorage和sessionStorage,而在微信小程序这一特定平台,官方提供了专属的Storage API(如wx.setStorage)。针对**小程序开发**中的常见场景,如用户登录态管理、购物车数据持久化及配置缓存,一个健壮的存储方案至关重

weixin_30420305的博客 416

前端基础10问

Nodejs是服务器端的一门技术。它是基于Google V8 JavaScript引擎而开发的。用来开发可扩展的服务端程序。

qq_34082921的博客 1116

2021 Vue 小程序 面试笔试题

一、html5部分 1.sessionStorage和localStorage的区别 答案: sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。 2.Canvas和SVG的区别是什么 答案: canvas绘制2d位图svg绘制2d

zhixin21的博客 1749

微信小程序如何设置cookie实现session登录

微信对wx.request这个API做了修改,小程序发起的请求并不是直接请求我们的后台服务器,而是先通过微信的服务器再发送到我们的后台服务器,那么我们的服务器就无法识别请求的发起者了,因此cookie在微信小程序中无法使用,导致不能直接使用后台的。

刘杨造梦的博客 4009

微信小程序中session管理的实战技巧(附完整代码)

本文深入解析微信小程序中Session管理的核心原理与常见问题,提供了一套完整的实战解决方案。针对小程序无法自动管理Cookie的特性,详细阐述了如何手动获取、存储和携带Session,并附带了处理Session过期、安全存储等进阶场景的完整代码示例,帮助开发者构建稳定的小程序登录体系。

cherry的博客 675

OpenClaw实操:给网站装上“智能眼睛”?手把手教你用OpenClaw实时监控网站

本文介绍如何在Windows系统使用OpenClaw构建智能网站监控助手。手把手教你通过配置本地AI模型,让openclaw构建的ai助手自动检测指定网页的内容变化,理解更新重要性,并及时通过邮件、微信、Telegram等渠道发出预警,让你第一时间掌握关键信息,彻底告别手动刷新。

plawuyue的博客 2163

H5本地存储

在以前,我们想要存储一些数据,并且只是在前端使用,服务端并不会使用,我们只能存在cookie里,但是cookie会跟随请求头在客户端和服务端之间来回传递,而且cookie还有一些缺点,H5提供了webStorage的API用来做客户端的数据存储 cookie与webStorage的区别 1. cookie有大小的限制,只能存储4kb,webStorage可以存储5Mb,cookie...

weixin_30723433的博客 86

STM32开发实战:从嵌入式系统到硬件控制 | 你必须得会

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1045

逆向工程实战:如何用Frida和IDA破解AppleAccount的X-MMe-Nas-Qualify签名机制

本文通过逆向工程实战,详细解析了如何利用Frida动态Hook和IDA静态分析技术,破解AppleAccount服务中关键的X-MMe-Nas-Qualify签名机制。文章从环境搭建、动态追踪NSMutableURLRequest的签名注入点开始,逐步深入到AuthKit框架的静态剖析与算法还原,最终实现独立的签名生成,为安全研究和自动化测试提供了完整的技术路径。

bush的博客 696

记录微信小程序开发过程中遇到的坑

为了参加微信小程序开发大赛,了解了微信小程序的开发,在实际的开发过程中遇到了一些问题,以此记录,避免再犯! 简述 小程序的开发官方文档链接:小程序开发API 我的代码仓库:Github 刚接触小程序的开发,个人觉得要写好小程序,得熟悉前端开发,因为小程序的编码基于HTML、CSS和JS。只不过在微信中,为了打造微信的生态圈,重新定义了小程序编码。其实质还是和前端开发类似,如果你有...

DYBOY-程序开发&网络安全 1722

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

前端综合实训笔记

例如,如果你需要存储大量的数据,并且这些数据需要在用户的多个浏览器会话中持久存在,那么你可能会选择使用localStorage。相反,localStorage和cookie的数据在所有同源窗口中都是共享的,无论在哪个窗口中设置的数据,都可以在其他窗口中访问到。由于 `wx.setStorage` 是异步的,而 `wx.setStorageSync` 是同步的,这里我会展示如何使用 `wx.setStorage` 以异步方式封装设置本地存储的方法。在解构中,解构的源:解构赋值表达式右边部分;

yyyiii_的博客 1109

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 905

dell r630 配置raid_DELL服务器RAID配置图文教程

名称解释:Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VDPD(Physical Disk): 物理磁盘HS:Hot Spare 热备Mgmt:管理【一】创建逻辑磁盘1、按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P...

weixin_33253741的博客 3510

Cookie与Session机制详解及Web安全实践

Cookie和Session是Web开发中用于状态管理的核心技术。Cookie作为浏览器端的存储机制,通过Set-Cookie头实现服务器与客户端的数据交换;而Session则是服务器端的会话管理方案,依赖唯一标识关联用户数据。两者配合可解决HTTP无状态问题,实现用户认证、个性化设置等核心功能。在安全方面,HttpOnly和Secure属性能有效防御XSS攻击,SameSite策略则管控跨站请求的Cookie发送行为。现代Web应用中,结合Token的混合架构逐渐成为主流,既保持Session的安全优势,

weixin_29327525的博客 107

系统盘被 1Panel 撑爆了?一键脚本 3 分钟搞定无损迁移!(1Panel如何快速无损的修改安装目录)

很多用户因默认安装导致 1Panel 面板占满系统盘 😱,本文详解了为何常规快照迁移会失效,并提供了通过**一键自动化脚本**实现无损迁移的完美方案 🛠️。无论你是 NAS 用户还是服务器管理员,都能找到安全扩容的最佳实践。

XiaoqiangClub的博客 1279

一文读懂 Token:解决 Cookie+Session 痛点的新一代 “身份凭证”

Token 是 “无状态的身份凭证”,服务器无需存储会话信息,只需验证 Token 的真伪和有效性;主流的 JWT 由 Header(算法)、Payload(身份信息)、Signature(签名)三部分组成,核心安全保障是签名;Token 解决了 Cookie+Session 的分布式部署、跨平台适配、服务器负载等痛点,是现代应用的首选身份验证方式;使用 Token 的核心原则:HTTPS 传输、合理设置过期时间、不存敏感信息、严格保密服务器密钥。

2301_82132279的博客 816

OpenHarmony AI系列:神经网络处理单元(NPU)驱动架构与实现详解

NPU(Neural Processing Unit,神经网络处理单元)是专门为神经网络计算设计的硬件加速器。在OpenHarmony系统中,NPU驱动是通过NNRT(Neural Network Runtime,神经网络运行时)框架实现的,它作为中间桥梁连接上层AI推理框架和底层NPU硬件,实现AI模型的跨芯片推理计算。

m0_67505153的博客 665

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

小程序面试题的比较性问题7道

onLoad钩子函数只触发一次,如果想要多次触发并且进行对应的数据请求,则需要在onShow钩子函数中进行处理,比如通过navigateTo进行路由跳转以后,再返回页面,那么onLoad中的数据请求操作将不会触发,只能在onShow中进行请求。运行环境的不同:传统的HTML5的运行环境是浏览器,包括webview。应用在生产环境的运行流畅度:长久以来,当HTML5应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验,但是由于微信小程序运行环境独立。

2401_83470102的博客 388

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 在微信小程序中使用本地存储的方法
下一篇: 微信小程序功能实现:页面导航与跳转
learning_tom
博客等级 码龄1年 157粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值