当前位置: 首页 > news >正文

前端的强缓存和协商缓存

前端缓存机制

前端缓存主要分为两种类型:强缓存协商缓存

强缓存(HTTP Cache-Control)

  • 通过设置HTTP响应头中的Cache-Control实现。
  • 浏览器根据Cache-Control的值决定是否重新请求资源。
  • 指令示例:
    • no-cache:重新验证缓存资源。
    • no-store:禁止缓存。
    • public:允许中间缓存存储响应。
    • private:仅用户可缓存。
    • max-age=<seconds>:设置缓存时间。

协商缓存(Conditional Cache)

  • 缓存过期后,浏览器通过发送请求头查询资源是否更新。
  • 使用ETagLast-Modified与服务器进行验证。
  • 如果资源未更新,服务器返回304 Not Modified

协商缓存的HTTP头

  • ETag:资源版本标识符,用于If-None-Match
  • Last-Modified:上次修改日期,用于If-Modified-Since

区别和使用场景

  • 强缓存:适用于不常变动的资源,减少请求。
  • 协商缓存:适用于可能更新的资源,验证资源更新。

实践建议

  • 合理设置Cache-Control实现强缓存。
  • 对动态内容使用ETagLast-Modified实现协商缓存。
  • 结合使用两种缓存策略,优化网站性能和用户体验。

相关文章:

  • Pixi.js学习 (六)数组
  • 前端面试题日常练-day60 【面试题】
  • 鸿蒙轻内核M核源码分析系列六 任务及任务调度(2)任务模块
  • UnityAPI学习之Animator的基本使用
  • UE4获取动画序列资产的动画时长
  • 【Linux】I/O多路复用
  • B站画质补完计划(3):智能修复让宝藏视频重焕新生
  • SpringBoot整合SpringDataRedis
  • 附件采集文件类型识别方案
  • UML交互图-协作图
  • Kotlin 协程:从基础概念到开发实践
  • 可以自定义的文字识别OCR
  • 微软 Edge 推出 WebUI 2.0:从 React 到 Web Components + HTML,速度提升了42%
  • ATA-2088高压放大器在细胞分选中的作用是什么
  • Joplin Typora 粘贴图片 | 当使用Typora作为Joplin编辑器时,如何粘贴图片并上传到Joplin服务器,替换链接
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Angular4 模板式表单用法以及验证
  • eclipse的离线汉化
  • jquery cookie
  • Python进阶细节
  • Python学习之路13-记分
  • vue-loader 源码解析系列之 selector
  • 高度不固定时垂直居中
  • 关于 Cirru Editor 存储格式
  • 简单数学运算程序(不定期更新)
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​力扣解法汇总946-验证栈序列
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • !!java web学习笔记(一到五)
  • # Redis 入门到精通(一)数据类型(4)
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (14)Hive调优——合并小文件
  • (4)Elastix图像配准:3D图像
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (done) Go 语言:三种多文件协作方式
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (zhuan) 一些RL的文献(及笔记)
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (九十四)函数和二维数组
  • (十七)Flink 容错机制
  • (四)Linux Shell编程——输入输出重定向
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET 5种线程安全集合
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net mvc总结
  • .NET Standard 的管理策略
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET8使用VS2022打包Docker镜像