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.mzph.cn/diannao/51952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目实战:Qt+Opencv相机标定工具v1.3.0(支持打开摄像头、视频文件和网络地址,支持标定过程查看、删除和动态评价误差率,支持追加标定等等)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141334834 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…

python之一文秒懂re正则表达式

引言 Python 中的正则表达式是一个强大的工具,用于处理字符串,查找、替换、分割等。正则表达式使用特殊语法来表示一系列匹配字符串的字符规则。Python 通过 re 模块提供对正则表达式的支持。 1. 查找 1.re.search(pattern, string[, flags0]) 功能&…

二十二、状态模式

文章目录 1 基本介绍2 案例2.1 Season 接口2.2 Spring 类2.3 Summer 类2.4 Autumn 类2.5 Winter 类2.6 Person 类2.7 Client 类2.8 Client 类的运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 State ( 状态 )3.1.2 ConcreteState ( 具体的状态 )3.1.3 Context ( 上下文 )3.…

Airtest 的使用

Airtest 介绍 Airtest Project 是网易游戏推出的一款自动化测试框架,其项目由以下几个部分构成 Airtest : 一个跨平台的,基于图像识别的 UI 自动化测试框架,适用于游戏和 App , 支持 Windows, Android 和 iOS 平台&#xff0c…

【功能】修改昵称

需求:全中文模式下,最多8个汉字;其它情况最多16个字节 此处引入C#中,中英文在不同文本格式下占用的空间大小 1.ASCII中,一个英文字母(不区分大小写),占1个字节;一个汉字…

解决银河麒麟V10登录循环的方法

解决银河麒麟V10登录循环的方法 一:进入命令行二:删除.Xauthority文件三:重启系统 💖The Begin💖点点关注,收藏不迷路💖 在使用银河麒麟桌面操作系统V10时,有时可能会遇到一个令人头…

【题解】—— LeetCode一周小结32

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结31 5.不含连续1的非负整数 题目链接:600. 不含连续…

jenkins升级踩坑记录

1. 直接用java 1.8版本启动最新版jenkins.war,直接失败 2. 下载java 11启动,依然失败,换成java17版本可以启动,但会报错 解决报错1: java.io.IOException: Failed to load: Parameterized Remote Trigger Plugin (Pa…

redis列表若干记录

2、列表 ziplist ziplist参数 entry结构 entry-data:节点存储的元素prelen:记录前驱节点长度encoding:当前节点编码格式encoding encoding属性 使用多个子节点存储节点元素长度,这种多字节数据存储在计算机内存中或者进行网络传输的时的字节…

小型超声波清洗机哪个品牌好用?小型超声波清洗机排名前四

第一次见识到超声波清洗机的神奇是在几年前,当时我去眼镜店配眼镜。等待的过程中,店员把旧的眼镜拿去清洁了,30秒,我就看到了到小污渍和油污被震出来了,感觉特别神奇。几分钟后,清洁完毕,擦干镜…

3个常用zip压缩包文件打来密码删除方法

ZIP压缩包作为一种广泛使用的文件压缩格式,常常用于节省存储空间或便于文件传输。一般情况下为保护文件数据的安全我们会给zip压缩文件设置密码安全保护,但如果后续不需要密码保护了,如何删除密码呢?下面小编给大家介绍三种常用的…

java 函数接口Consumer简介与示例【函数式编程】【Stream】

Java 8 中的 消费者接口Consumer 是一个函数接口,它可以接受一个泛型 类型参数,它属于java.util.function包。 accept(T) 方法:是 Consumer 函数式接口的方法,传入单个输入参数,无返回值,可以用于 Lambda 表…

电脑监控软件有哪些,哪款更好用?一网打尽!电脑监控软件大搜罗,总有一款适合你!

甲:哎,您听说了吗?这年头,电脑监控软件那是五花八门,跟变戏法似的! 乙:哦?怎么个五花八门法? 甲:嘿,您还别说,从实时监控到网络追踪…

最佳实践:敏捷需求管理——如何写好用户故事丨IDCF

丁仿,圣略咨询首席敏捷教练,研发效能(DevOps)工程师(中级)课程学员 在敏捷项目管理中,用户故事(User Stories)是需求管理的核心工具。本篇文章将从用户故事的基本概念、编…

一个手机到手机之间通话经过了哪些设备

来源:https://www.bilibili.com/video/BV1ic411F7mM/?spm_id_from333.880.my_history.page.click&vd_source6c5d3cd50fc7fa8732bdfb760a055839 一个手机通话需要经过下面三个网络 类别接入网(Access Network)承载网(Transp…

复习之 java 锁

裁员在家,没有面试机会,整理整理面试知识点吧! 不得不知道的java 锁 Java 中,提供了两种方式来实现同步互斥访问(也就是锁):synchronized 和 Lock 多线程编程中,有可能会出现多个线…

PCB工艺

表面处理 提高焊接质量:提高焊接点的质量,确保电路板的可靠性和寿命。防止氧化:保护裸露的铜箔不受氧化,延长电路板的使用寿命。提高导电性:某些表面处理方法可以提高电路板的导电性,适用于高频和高速电路…

期权中非常重要的行权!不懂行权先别交易!

今天带你了解期权中非常重要的行权!不懂行权先别交易!期权是金融市场中一种常见的衍生品工具,它给予持有者在特定时间内以特定价格购买或出售某个资产的权利。而“行权”是指期权持有者行使期权权利的行为。 期权行权是指期权持有者选择执行…

【区块链+金融服务】甘肃股权交易中心企业金融服务平台 | FISCO BCOS应用案例

甘肃股权交易中心股份有限公司(简称“甘肃股交中心”)与甘肃征信股份有限公司同属甘肃金控集团控股子公司, 在共同服务本地中小微企业发展中发挥了重要作用。甘肃股交中心目前使用深圳证券通信有限公司研发的区域股权综合金融服务平台&#x…

超网和无类间路由是什么?

​一、超网概述 超网是将多个连续的网络地址组合成一个增加的网络地址的技术。常用于减少路由器的路由表大小,网络的可扩展性。通过合并连续的子网,超网可以减少路由入侵的数量,从而提高网络的效率。 超网的实现基于合并多个具有连续IP地址…