登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
3
Star
47
Fork
22
DreamCoders
/
CoderGuide
代码
Issues
1169
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
cookies,sessionStorage 和 localStorage 的区别?
待办的
#IAG9NR
陌生人
拥有者
创建于
2024-07-29 16:06
<p style="text-align: start;"><img src="https://jsd.onmicrosoft.cn/gh/iGaoWei/codercdn@master/question/20240627/2024062709380748012.png" alt="https://jsd.onmicrosoft.cn/gh/iGaoWei/codercdn@master/question/20240627/2024062709380748012.png" data-href="" style=""></p><p style="text-align: start;">(1)共同点:三者都是浏览器的本地存储。</p><p style="text-align: start;">(2)区别:</p><p style="text-align: start;"> ①存储位置:cookie是由服务器端写入的,而SessionStorage、LocalStorage都是由前端写入的;</p><p style="text-align: start;"> ②存储大小:cookie的存储空间比较小,大概4KB,而SessionStorage、LocalStorage存储空间比较大,大概5M;</p><p style="text-align: start;"> ③生命周期:cookie的生命周期是由服务器端在写入的时候就设置好的,SessionStorage是页面关闭的时候就会自动清除,LocalStorage是写入就一直存在,除非手动清除;</p><p style="text-align: start;"> ④数据共享:三者的数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面。</p><p style="text-align: start;"> ⑤发送请求时是否携带:在前端给后端发送请求的时候会自动携带cookie中的数据,但是SessionStorage、LocalStorage不会;</p><p style="text-align: start;"> ⑥应用场景:cookie一般用于存储登录验证信息SessionID或者token,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条功能,多页表单信息填写,LocalStorage常用于存储不易变动的数据,减轻服务器的压力。</p><p style="text-align: start;"><br></p><h4 style="text-align: start;">1. cookies</h4><p style="text-align: start;">介绍:cookie,意思是小甜饼,顾名思义,cookie 确实非常小,它的大小限制为 4KB 左右;每个 HTTP 请求都会带着 Cookie 的信息,所以 Cookie 当然是能精 简就精简!</p><p style="text-align: start;">常用的应用场景:判断用户是否登录。</p><p style="text-align: start;">针对登录过的用户,服 务器端会在他登录时往 Cookie 中加入一段加密过的唯一辨识单一用户的辨识码,下次只要读取这个值就可以判断当前用户是否登录啦。</p><h4 style="text-align: start;">2.localStorage</h4><p style="text-align: start;">介绍:localStorage,它是 HTML5 标准中新加入的技术,localStorage 已经被大多数浏览器所支持;</p><p style="text-align: start;"> sessionStorage,它与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同,它只是可以将一部分数据在当前会话 中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就 会被清空。</p><p style="text-align: start;">常用的应用场景:</p><p style="text-align: start;">localStorage 接替了 Cookie 管理购物车的工作,</p><p style="text-align: start;">HTML5 游戏通常会产生一些本地数据,localStorage 则是非常适合做 这个工作的。</p><h4 style="text-align: start;">3.sessionStorage </h4><p style="text-align: start;">介绍:sessionStorage,它与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。</p><p style="text-align: start;">它只是可以将一部分数据在当前会话 中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就 会被清空。</p><p style="text-align: start;">常用的应用场景:</p><p style="text-align: start;"> 如果遇到一些内容特别多的表单,为了优化用户体验,我们可能要把表 单页面拆分成多个子页面,然后按步骤引导用户填写。这时候 sessionStorage 的作用 就发挥出来了。</p><h4 style="text-align: start;">4.区别</h4><table style="width: 100%;"><tbody><tr><th colSpan="1" rowSpan="1" width="216.9">特性</th><th colSpan="1" rowSpan="1" width="397.31">cookie</th><th colSpan="1" rowSpan="1" width="294.95">sessjonStorage</th><th colSpan="1" rowSpan="1" width="317">localstorage</th></tr><tr><td colSpan="1" rowSpan="1" width="32">数据生命期</td><td colSpan="1" rowSpan="1" width="239">生成时就会被指定一个maxAge值,这就是cookie的生存 周期,在这个周期内cookie有效,默认关闭浏览器失效</td><td colSpan="1" rowSpan="1" width="71">页面会话期间可用</td><td colSpan="1" rowSpan="1" width="131">除非数据被清除,否则一直 存在</td></tr><tr><td colSpan="1" rowSpan="1" width="32">存放数据大小</td><td colSpan="1" rowSpan="1" width="239">4K左右(因为每次http请求都会携带cookie)</td><td colSpan="2" rowSpan="1" width="202">一般5M或更大</td></tr><tr><td colSpan="1" rowSpan="1" width="32">与服务器通信</td><td colSpan="1" rowSpan="1" width="239">由对服务器的请求来传递,每次都会携带在HTTP头中 如果使用cookie保存过多数据会带来性能问题</td><td colSpan="2" rowSpan="1" width="202">数据不是由每个服务器请求传递的,而是只有在请求时使用数据,不参与和服务器的通信</td></tr><tr><td colSpan="1" rowSpan="1" width="32">易用性</td><td colSpan="1" rowSpan="1" width="239">cookie需要自己封装setCookie,getCookie</td><td colSpan="2" rowSpan="1" width="202">可以用源生接口,也可再次封装来对Object和 Array有更好的支持</td></tr><tr><td colSpan="1" rowSpan="1" width="32">共同点</td><td colSpan="3" rowSpan="1" width="442">都是保存在浏览器端,和服务器端的session机制不同</td></tr></tbody></table><p><br></p>
<p style="text-align: start;"><img src="https://jsd.onmicrosoft.cn/gh/iGaoWei/codercdn@master/question/20240627/2024062709380748012.png" alt="https://jsd.onmicrosoft.cn/gh/iGaoWei/codercdn@master/question/20240627/2024062709380748012.png" data-href="" style=""></p><p style="text-align: start;">(1)共同点:三者都是浏览器的本地存储。</p><p style="text-align: start;">(2)区别:</p><p style="text-align: start;"> ①存储位置:cookie是由服务器端写入的,而SessionStorage、LocalStorage都是由前端写入的;</p><p style="text-align: start;"> ②存储大小:cookie的存储空间比较小,大概4KB,而SessionStorage、LocalStorage存储空间比较大,大概5M;</p><p style="text-align: start;"> ③生命周期:cookie的生命周期是由服务器端在写入的时候就设置好的,SessionStorage是页面关闭的时候就会自动清除,LocalStorage是写入就一直存在,除非手动清除;</p><p style="text-align: start;"> ④数据共享:三者的数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面。</p><p style="text-align: start;"> ⑤发送请求时是否携带:在前端给后端发送请求的时候会自动携带cookie中的数据,但是SessionStorage、LocalStorage不会;</p><p style="text-align: start;"> ⑥应用场景:cookie一般用于存储登录验证信息SessionID或者token,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条功能,多页表单信息填写,LocalStorage常用于存储不易变动的数据,减轻服务器的压力。</p><p style="text-align: start;"><br></p><h4 style="text-align: start;">1. cookies</h4><p style="text-align: start;">介绍:cookie,意思是小甜饼,顾名思义,cookie 确实非常小,它的大小限制为 4KB 左右;每个 HTTP 请求都会带着 Cookie 的信息,所以 Cookie 当然是能精 简就精简!</p><p style="text-align: start;">常用的应用场景:判断用户是否登录。</p><p style="text-align: start;">针对登录过的用户,服 务器端会在他登录时往 Cookie 中加入一段加密过的唯一辨识单一用户的辨识码,下次只要读取这个值就可以判断当前用户是否登录啦。</p><h4 style="text-align: start;">2.localStorage</h4><p style="text-align: start;">介绍:localStorage,它是 HTML5 标准中新加入的技术,localStorage 已经被大多数浏览器所支持;</p><p style="text-align: start;"> sessionStorage,它与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同,它只是可以将一部分数据在当前会话 中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就 会被清空。</p><p style="text-align: start;">常用的应用场景:</p><p style="text-align: start;">localStorage 接替了 Cookie 管理购物车的工作,</p><p style="text-align: start;">HTML5 游戏通常会产生一些本地数据,localStorage 则是非常适合做 这个工作的。</p><h4 style="text-align: start;">3.sessionStorage </h4><p style="text-align: start;">介绍:sessionStorage,它与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。</p><p style="text-align: start;">它只是可以将一部分数据在当前会话 中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就 会被清空。</p><p style="text-align: start;">常用的应用场景:</p><p style="text-align: start;"> 如果遇到一些内容特别多的表单,为了优化用户体验,我们可能要把表 单页面拆分成多个子页面,然后按步骤引导用户填写。这时候 sessionStorage 的作用 就发挥出来了。</p><h4 style="text-align: start;">4.区别</h4><table style="width: 100%;"><tbody><tr><th colSpan="1" rowSpan="1" width="216.9">特性</th><th colSpan="1" rowSpan="1" width="397.31">cookie</th><th colSpan="1" rowSpan="1" width="294.95">sessjonStorage</th><th colSpan="1" rowSpan="1" width="317">localstorage</th></tr><tr><td colSpan="1" rowSpan="1" width="32">数据生命期</td><td colSpan="1" rowSpan="1" width="239">生成时就会被指定一个maxAge值,这就是cookie的生存 周期,在这个周期内cookie有效,默认关闭浏览器失效</td><td colSpan="1" rowSpan="1" width="71">页面会话期间可用</td><td colSpan="1" rowSpan="1" width="131">除非数据被清除,否则一直 存在</td></tr><tr><td colSpan="1" rowSpan="1" width="32">存放数据大小</td><td colSpan="1" rowSpan="1" width="239">4K左右(因为每次http请求都会携带cookie)</td><td colSpan="2" rowSpan="1" width="202">一般5M或更大</td></tr><tr><td colSpan="1" rowSpan="1" width="32">与服务器通信</td><td colSpan="1" rowSpan="1" width="239">由对服务器的请求来传递,每次都会携带在HTTP头中 如果使用cookie保存过多数据会带来性能问题</td><td colSpan="2" rowSpan="1" width="202">数据不是由每个服务器请求传递的,而是只有在请求时使用数据,不参与和服务器的通信</td></tr><tr><td colSpan="1" rowSpan="1" width="32">易用性</td><td colSpan="1" rowSpan="1" width="239">cookie需要自己封装setCookie,getCookie</td><td colSpan="2" rowSpan="1" width="202">可以用源生接口,也可再次封装来对Object和 Array有更好的支持</td></tr><tr><td colSpan="1" rowSpan="1" width="32">共同点</td><td colSpan="3" rowSpan="1" width="442">都是保存在浏览器端,和服务器端的session机制不同</td></tr></tbody></table><p><br></p>
评论 (
0
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
Html/JS/CSS
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
1
https://gitee.com/DreamCoders/CoderGuide.git
git@gitee.com:DreamCoders/CoderGuide.git
DreamCoders
CoderGuide
CoderGuide
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册