登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
Gitee 2025年度个人数据报告已发布,快来看看你的成长👉
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
3
Star
47
Fork
21
DreamCoders
/
CoderGuide
代码
Issues
1169
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
常用的前端缓存有哪些?举例说明
待办的
#IAG9N4
陌生人
拥有者
创建于
2024-07-29 16:06
<p>浏览器第一次向服务器发起请求拿到结果,会根据 http 头的缓存标识决定是否缓存结果,是则将结果和缓存标识存入浏览器缓存中;</p><p>1)、http缓存:强缓存、协商缓存</p><p>强缓存:200</p><p>Expires:代表资源过期时间,由服务器返回提供(http1.0),在与max-age(http1.1)共存的情况下,优先级要低</p><p>Cache-Control:</p><p><br></p><p>no-store:所有内容不缓存</p><p>no-cache:缓存,但是每次缓存都会请求浏览器判断缓存资源是否是最新</p><p>max-age=x(秒):请求缓存后 x 秒内不在发起请求(http1.1)</p><p>s-maxage=x:代理服务器(CDN)请求源站缓存后 x 秒不在发起请求(只对 CDN 有效)</p><p>public:客户端和代理服务器(CDN)都可缓存</p><p>private:只有客户端可以缓存</p><p>协商缓存:304</p><p>Last-Modified / If-Modified-Since:第一次访问一个资源的时候,服务器返回最后修改时间 Last-Modified,再次请求时请求头里会带上 If-Modified-Since,值为上次请求服务器返回的 Last-Modified;对比值是否相同(相同则没修改),确认资源在这段时间是否修改过,没有返回304,有返回200,获取最新资源。</p><p>Etag / If-None-Match:Etag是通过一个校验码来对比资源是否更改过的,一个资源修改时校验码会改变。第一次请求,服务器返回一个 Etag字段,再次请求时请求头会带上 If-None-Match,值是上次返回的 Etag,然后对比。</p><p>2)、浏览器缓存:本地缓存(cookie、localStorage、sessionStorage)、默认缓存</p><p>本地存储小容量:</p><p>cookie:4kb,请求时传递给服务器</p><p>localStorage:5M,永久存储</p><p>sessionStorage:5M,当标签页被关闭时,SessionStorage也会被清除</p><p>本地存储大容量:(在线编辑浏览器或者网页邮箱)</p><p>WebSql:50M左右,关系型数据库,已被 W3C 废弃。</p><p>IndexDB:50M左右,非关系型数据库,正常使用。</p><p>往返缓存:又被称为 BFCache,是浏览器前进后退按钮上为了提升渲染速度的一种策略;当用户前往新页面的时候,将当前页面的DOM保存到 BFCache 中,用户后退时直接从 BFCache 中加载,节省请求时间。</p><p>3)、缓存的好处</p><p>1、减小服务器压力</p><p>2、节省客户端流量,避免重复请求同样的内容</p>
<p>浏览器第一次向服务器发起请求拿到结果,会根据 http 头的缓存标识决定是否缓存结果,是则将结果和缓存标识存入浏览器缓存中;</p><p>1)、http缓存:强缓存、协商缓存</p><p>强缓存:200</p><p>Expires:代表资源过期时间,由服务器返回提供(http1.0),在与max-age(http1.1)共存的情况下,优先级要低</p><p>Cache-Control:</p><p><br></p><p>no-store:所有内容不缓存</p><p>no-cache:缓存,但是每次缓存都会请求浏览器判断缓存资源是否是最新</p><p>max-age=x(秒):请求缓存后 x 秒内不在发起请求(http1.1)</p><p>s-maxage=x:代理服务器(CDN)请求源站缓存后 x 秒不在发起请求(只对 CDN 有效)</p><p>public:客户端和代理服务器(CDN)都可缓存</p><p>private:只有客户端可以缓存</p><p>协商缓存:304</p><p>Last-Modified / If-Modified-Since:第一次访问一个资源的时候,服务器返回最后修改时间 Last-Modified,再次请求时请求头里会带上 If-Modified-Since,值为上次请求服务器返回的 Last-Modified;对比值是否相同(相同则没修改),确认资源在这段时间是否修改过,没有返回304,有返回200,获取最新资源。</p><p>Etag / If-None-Match:Etag是通过一个校验码来对比资源是否更改过的,一个资源修改时校验码会改变。第一次请求,服务器返回一个 Etag字段,再次请求时请求头会带上 If-None-Match,值是上次返回的 Etag,然后对比。</p><p>2)、浏览器缓存:本地缓存(cookie、localStorage、sessionStorage)、默认缓存</p><p>本地存储小容量:</p><p>cookie:4kb,请求时传递给服务器</p><p>localStorage:5M,永久存储</p><p>sessionStorage:5M,当标签页被关闭时,SessionStorage也会被清除</p><p>本地存储大容量:(在线编辑浏览器或者网页邮箱)</p><p>WebSql:50M左右,关系型数据库,已被 W3C 废弃。</p><p>IndexDB:50M左右,非关系型数据库,正常使用。</p><p>往返缓存:又被称为 BFCache,是浏览器前进后退按钮上为了提升渲染速度的一种策略;当用户前往新页面的时候,将当前页面的DOM保存到 BFCache 中,用户后退时直接从 BFCache 中加载,节省请求时间。</p><p>3)、缓存的好处</p><p>1、减小服务器压力</p><p>2、节省客户端流量,避免重复请求同样的内容</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 帐号,请先登录后再操作。
立即登录
没有帐号,去注册