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

HTML浏览器缓存(Browser Cache)

介绍:
浏览器缓存是Web缓存中最直接、最常见的一种形式。当浏览器首次请求某个资源时,如果服务器响应中包含了缓存控制指令(如Cache-Control、Expires等),浏览器就会将这些资源存储在本地缓存中。后续请求相同资源时,如果缓存未过期,浏览器将直接从缓存中加载资源,而无需再次向服务器发起请求。

浏览器缓存分为两种:强制缓存和协商缓存。

一、强制缓存

浏览器第一次向服务器发送请求,服务器返回资源,并设置Cache-Control: max-age=一串数字,这一串数字就是过期时间,例如设置一小时后过期,则max-age=3600。
浏览器第二次向服务器发送请求。
如果max-age没有过期,例如在一小时内请求资源,则从缓存中拿资源。
如果max-age已过期,则进行下一步判断协商缓存。

代码示例(设置HTTP响应头以控制缓存):

HTTP/1.1 200 OK  
Cache-Control: max-age=3600  // 缓存有效期为1小时  
Content-Type: text/html  
...

二、协商缓存

关键词:Last-Modified、E-Tag

浏览器第一次向服务器发送请求,服务器返回资源,并设置资源标识(Last-Modified或者E-Tag),将资源和标识码存在缓存中。
浏览器第二次向服务器发送请求和资源标识(If-Modified-Since或者If-None-Match),服务器根据资源标识判断当前缓存里的资源是否是最新资源。
如果不是最新资源,服务器返回状态码200并重新发送最新资源和最新的资源标识码。
如果是最新资源,服务器返回状态码304,并从缓存中拿资源。

资源标识

  • Last-Modified:资源上一次修改的时间。对应发送请求的资源标识:If-Modified-Since
  • ETag:资源对应的唯一字符串。对应发送请求的资源标识:If-None-Match

优先使用ETag,更精确。


http://www.mrgr.cn/news/1995.html

相关文章:

  • sm2和md5前端对密码加密的方法
  • 2024华为OD机试真题- 贪吃的猴子Python-C卷D卷-200分
  • JS获取当前设备名称
  • WPF 动画 插值动画、关键帧动画、路径动画
  • 音乐生成模型应用
  • Linux系统-vi/vim编辑器权限管理文档处理三剑客
  • LeetCode 第三十一天 2024.8.18
  • 分布式知识总结(一致性Hash算法)
  • centos7卸载docker报错No Packages marked for removal
  • C语言 | Leetcode C语言题解之第347题前K个高频元素
  • Linux CentOS java JDK17
  • 给RAG系统做一次全面「体检」,亚马逊开源RAGChecker诊断工具
  • 前端框架(三件套)
  • ArcGIS如何将投影坐标系转回为地理坐标系
  • 斗破C++编程入门系列之五:算法的基本控制结构之选择结构
  • 算法笔记|Day29动态规划II
  • 面试题提升—浏览器+网络部分高频面试题
  • Android的日志工具Log
  • potplayer播放m2ts格式,截图
  • go语言中数据接口set集合的实现