浏览器缓存学习记录

news2024/11/28 11:49:24

图片参考链接:https://blog.csdn.net/weixin_44258964/article/details/106444238
其他学习参考链接:
浏览器的强缓存和协商缓存

『网络篇』之手把手实现强缓存与协商缓存
本文主要是对浏览器的两种缓存模式进行记录学习。
在这里插入图片描述

浏览器缓存是什么,从哪里来?

浏览器缓存是在我们访问浏览器各种资源(静态资源)时,保存在本地的副本文件。

缓存的作用,为什么用,怎么用?

如果一个资源被请求过并保存(缓存)在了本地,那么下一次需要这个资源时如果资源有效我们可以
避免再次向服务端发起请求,节省流量,服务端压力降低,同时前端响应速度也会变快。

浏览器会根据后端返回的响应头判断是否是用缓存。

缓存分类

分为强缓存和协商缓存。
如果是浏览器强缓存,当再次需要请求资源时,会直接使用强缓存资源,强缓存不能缓存根文件;
如果是协商缓存(对比缓存),会交由服务端决定是否要使用缓存。
在这里插入图片描述

强缓存和协商缓存

在这里插入图片描述
在这里插入图片描述

强缓存使用返回头中的 Expires 或者 Cache-Control 两个字段来控制的,都是表示资源的缓存有效时间。
协商缓存使用响应头的EtagLat-modified两个字段来判断是否有缓存,由服务器判断是否用缓存。
如果两种缓存都存在,优先级顺序 强缓存 > 协商缓存 ,即 Cache-Control > expires > Etag > Last-Modified

注:如果本地时间被修改,缓存可能会有问题。

cache-control

cache-control值是一个相对时间,通常通过max-age=xxxxx判断资源的有效期,如上图,
计算方式即 Date + max-age = expires。

Expires

Expire的值是一个GMT格式的表示时间的字符串,像上方截图的Date格式一样。该值代表缓存资源的失效时间。如果当前时间(Date)在Expires时间之前代表还未失效,可以用缓存。

在服务器上根据对比If-Modified-Since、If-None-Match和本地文件信息判断资源是否有变化,当两者相同时代表文件并没有发生过修改,浏览器将返回状态码304来使浏览器使用缓存中的数据,当其中任何一项与服务器数据信息不一致时,便是文件被修改过了,浏览器返回状态码200并将最新的文件携带着Etag、Last-Modified响应头返回给浏览器。

Last-Modified/If-Modified-Since

这两个值也都是GMT格式。前者在响应头中,代表文件最后修改时间,后者在请求头中,代表 Last-Modified 告诉服务器我本地缓存的文件最后修改的时间。

Etag/If-None-Match

在这里插入图片描述
这两个值是由服务器为每一个资源生成的唯一标识串,只要资源有变化就这个值就会改变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528656.html

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

相关文章

Kali安装zenmap无法使用成功解决

1,找到 https://nmap.org下载 Optional Zenmap GUI (all platforms): zenmap-7.93-1.noarch.rpm 第二步(已安装的忽略):新版kali Linux不支持rpm命令,需要安装rpm格式转化工具fakeroot sudo apt-get install alien fakeroot 第三步:因为后面安装要是debian(deb)格…

商场布局图怎么画?用于商场内部导航的地图怎么做?

用于商场内部导航的地图怎么做?随着人们生活节奏的加快以及收入的提高,人们对于购物的体验要求也在不断的提升,比如以往在商场里面想要快速找到某个商家或者商品都是通过询问工作人员或者路人,非常麻烦,而且&#xff0…

权重老域名在哪里找-怎么找有历史权重域名做站

在哪挖老域名 在哪挖老域名?作为一个SEO人员,这是一个常见的问题。其实,有许多方法可以挖掘老域名,其中一种最有效的方法是使用147SEO老域名挖掘工具。 147SEO老域名挖掘工具是一种基于云平台的工具,专门为SEO人员提…

SolidWorks草图练习题——第十一届M级

欢迎参加SOLIDWORKS认证考试的同学前来学习,下面是SOLIDWORKS第十一届M级的十道SolidWorks草图练习题: 1、2D11-M1(路标) [题目] CaTICs 2D11-M1 [注意]其中同心、等长等几何关系。[其他] 同色短线长度相等。(题图为示意图&…

webrtc 测试video_loopback

webrtc版本5841-m110 时间又过去了一年,再分析一下底层有什么改进,依然从video_loopback开始。 我想先不去看信令及协商的过程,只看媒体层有什么变化。所以从这个demo开始 video_loopback 项目路径 src/video/video_loopback 在video_loopb…

openssh原理

目录 一、openssh是什么 二、安装openssh 三、ssh协议 四、客户端登录过程 (1)远程登录——采用“密码身份验证方式” (1)远程登录——采用“密钥身份验证(免密登录)方式” 五、openssh配置文件 &a…

从零开始写一个Vue3+Element Plus的后台管理系统

写在开始之前 接触Vue3也有一年的时间了,除了刚开始用Vue3做了一个小小的项目,其后一直没有机会在项目中真正使用Vue3,反而一直维护Vue2的老项目。作为一个有追求(wuliao)的前端,那就自己开一个git仓库练手…

RAM内存,ROM,CACHE缓存

RAM(Random Access Memory):(redis是在这一层做的  随机存储器,俗称内存,我们常说的电脑内存8g,指的就是这个(也不完全正确)。RAM要求每时每刻都不断地供电,否则数据会丢失。它由半…

抖音无需代码连接飞书自建的方法

抖音用户使用场景: 公司短视频运营人员每天需要监管企业抖音视频的评论并及时处理,日常工作流程为:每当抖音上发布的视频有新增评论时,运营人员需要将评论内容发送到企业飞书群中通知相关人员及时跟进。整个流程看似比较简单&…

分页存储管理方式

目录 一、分页存储管理的基本方法 1.1页面与物理块 (1)页面 (2)页面大小 1.2地址结构 1.3页表 二、地址变换机构 2.1基本的地址变换机构 2.2具有快表的地址变换机构 三、访问内存的有效时间 案例习题: 1.二进制 2.基本…

ElasticSearch数据备份还原

ElasticSearch数据备份还原 使用Elasticsearch的API导出数据 Elasticsearch并没有内置的数据导出工具,但是可以使用多种方法来导出数据,包括使用Elasticsearch的API或者使用外部工具。这是一个使用Elasticsearch的API进行数据导出的基本步骤&#xff1…

OpenCV中的图像处理3.9(六)轮廓线特征与属性

目录 3.9 OpenCV中的轮廓线3.9.1 轮廓线:入门目标什么是轮廓线?如何绘制轮廓线?轮廓线逼近法 3.9.2 轮廓线的特征1. 矩2. 轮廓线面积3. 轮廓线周长4. 轮廓逼近5. 凸面体6. 检查凸性7. 边界矩形8. 最小包围圈9. 拟合椭圆10. 拟合直线 3.9.3 轮…

Springboot +Flowable,流程表单应用之外置表单(JSON形式)(二)

一.简介 整体上来说,我们可以将Flowable 的表单分为三种不同的类型: 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息,不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…

前端实现可拖拽课程表【纯HTML、CSS、JS】

前言 hello,今天实现点小动画,帮助学习理解Web api的拖拽效果,这里实现的是可拖拽的课程表!# 效果图 附:作者没钱去除水印,就这样看一下简单的看一下效果吧! 实现前言知识 这里我使用事件委…

轻量化Verilog开发环境搭建

轻量化Verilog学习环境搭建 本文记录基于vscode、iverilog搭建轻量化Verilog学习环境的方法。 ref: VSCode Verilog工具链、linux下搭建轻量易用的verilog仿真环境 环境搭建 (1)安装iverilog,这是一个轻量化的开源verilog编译器&#xff0…

4月更新 | Visual Studio Code Python

我们很高兴地宣布2023年4月版 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出! 此版本包括以下改进: Data Wrangler 可供 Visual Studio Code Insiders 使用移动符号重构Create Environment 按钮嵌入依赖文件扩展作者的环境 APIPython 环境的内…

Foxit PDF Reader及Editor任意代码执行漏洞复现(CVE-2023-27363)

0x01 产品简介 Foxit PDF Reader是一套用来阅读PDF格式文件的软件,由福建福昕软件所研发,主要运行在Windows操作系统上。 0x02 漏洞概述 Foxit PDF Reader及Editor中存在任意代码执行漏洞,由于Foxit PDF Reader/Editor未验证exportXFAData方…

【C++】3. 类和对象 - 类的六大默认成员函数

专栏导读 🍁作者简介:余悸,在读本科生一枚,致力于 C方向学习。 🍁收录于 C专栏,本专栏主要内容为 C初阶、 C 进阶、STL 详解等,持续更新中! 🍁相关专栏推荐: …

定薪17K*15,阿里测试岗上岸经验分享.....

先简单介绍一下我自己吧,等会大家以为我是什么学历狂人,技术大牛,我毕业于广东一个普通本科院校,绝对不是什么双一流大学,大家不要有距离感,这也是我为什么来分享的原因,因为我觉得我这段经验还…

Agisoft Metashape 空三导入Photomod

Agisoft Metashape 空三导入Photomod 文章目录 Agisoft Metashape 空三导入Photomod前言一、Metashape空三成果导出1.1导出PAT-B空三格式1.2. 导出相机文件二、Photomod空三成果导入2.1导入PAT-B空三格式2.2导入相机文件前言 本文讲解将Agisoft Metashape的空三成果导入Photom…