登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
Gitee 2025 年度开源项目评选中
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
3
Star
45
Fork
21
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
分支
未关联
未关联
master
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(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 帐号,请先登录后再操作。
立即登录
没有帐号,去注册