浏览器的缓存方式几种

浏览器的缓存方式主要分为以下几种:


1. 强制缓存(强缓存 / Memory Cache & Disk Cache)

  • 通过 ExpiresCache-Control 头部控制。
  • 在缓存有效期内,浏览器直接使用缓存,不发起请求。

关键HTTP头:

  • Expires: Wed, 21 Oct 2025 07:28:00 GMT(绝对时间,容易受客户端时间影响)
  • Cache-Control: max-age=3600, public(相对时间,推荐使用)

存储位置:

  • Memory Cache(内存缓存):用于短时间内频繁访问的资源(如当前页面的 CSS、JS)。
  • Disk Cache(磁盘缓存):用于存储较大的资源,关闭页面后仍然有效。

2. 协商缓存(弱缓存 / ETag & Last-Modified)

  • 如果强缓存失效,浏览器会发送请求,并通过协商缓存判断资源是否更新。
  • 如果资源未更新,服务器返回 304 Not Modified,浏览器继续使用缓存的资源。

关键HTTP头:

  • Last-Modified(资源的最后修改时间) & If-Modified-Since
  • ETag(资源的唯一标识符) & If-None-Match

3. Service Worker 缓存

  • Service Worker 作为浏览器的代理,拦截请求并返回缓存,适用于 PWA(渐进式Web应用)
  • 可用 Cache API 控制哪些资源缓存、如何更新。

4. 浏览器存储(LocalStorage / SessionStorage / IndexedDB)

  • LocalStorage:持久化存储,关闭页面或浏览器不会丢失数据。
  • SessionStorage:会话级存储,页面关闭后数据丢失。
  • IndexedDB:适用于存储大量数据,如 JSON 对象。

5. Push Cache(HTTP/2 推送缓存)

  • 仅限 HTTP/2 使用,服务器可以主动推送资源到客户端缓存,但 生命周期很短,仅在会话(Session)内有效。

总结

缓存方式是否需要请求过期控制适用场景
强缓存Cache-Control / Expires资源不变更,减少请求
协商缓存ETag / Last-Modified资源可能变更
Service Worker自定义缓存规则PWA、离线缓存
浏览器存储自己控制存储 JSON、用户设置
Push Cache仅会话内有效HTTP/2 服务器推送

你可以根据需求选择合适的缓存策略!🚀

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【B站保姆级视频教程:Jetson配置YOLOv11环境(十)镜像备份】

Jetson配置YOLOv11环境(10)镜像备份 B站视频的镜像已打包上传至百度网盘,镜像的硬盘空间使用量如下,感兴趣的小伙伴可自行下载烧录,需使用64g及以上的tf卡: (pytorch) nxnx-desktop:~$ df -h Filesystem …

了解大语言模型的基本原理(一)——Transformer工作原理

为什么选择Transformer? RNN:无法并行计算,不擅长处理长序列 LSTM:依然存在这两个问题 Transformer:可以并行计算,并且能学习输入序列里所有词的相关性和上下文关系 Tranformer优点: 1、注…

【Matlab优化算法-第13期】基于多目标优化算法的水库流量调度

一、前言 水库流量优化是水资源管理中的一个重要环节,通过合理调度水库流量,可以有效平衡防洪、发电和水资源利用等多方面的需求。本文将介绍一个水库流量优化模型,包括其约束条件、目标函数以及应用场景。 二、模型概述 水库流量优化模型…

JAVA:CloseableHttpClient 进行 HTTP 请求的技术指南

1、简述 CloseableHttpClient 是 Apache HttpComponents 提供的一个强大 HTTP 客户端库。它允许 Java 程序与 HTTP/HTTPS 服务交互,可以发送 GET、POST 等各种请求类型,并处理响应。该库广泛用于 REST API 调用、文件上传和下载等场景。 2、特性 Close…

(2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型

BiomedGPT: A generalist vision–language foundation model for diverse biomedical tasks 目录 1. 摘要 2. 引言 3. 相关研究 3.1 基础模型与通用生物医学 AI 3.2 生物医学 AI 的局限性 3.3 BiomedGPT 的创新点 4. 方法 4.1 架构及表示 4.1.1 模型架构选择 4.1.2 …

使用DeepSeek实现AI自动编码

最近deepseek很火,低成本训练大模型把OpenAI、英伟达等股票搞得一塌糊涂。那它是什么呢,对于咱们程序员编码能有什么用呢?DeepSeek 是一款先进的人工智能语言模型,在自然语言处理和代码生成方面表现出色。它经过大量代码数据训练&…

Linux之Https协议原理

Linux之Https协议原理 一.Https协议的概念二.常见的加密方法三.数据摘要(数字指纹)四.Https协议加密方法的逐渐完善4.1使用对称或者非对称加密4.2增加CA证书 一.Https协议的概念 Https协议是基于Http协议延申出的一种应用层协议,其原理就是在…

基于Java的在线购物系统的设计与实现

引言 课题背景 随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强…

HarmonyOS 5.0应用开发——全局自定义弹出框openCustomDialog

【高心星出品】 文章目录 全局自定义弹出框openCustomDialog案例开发步骤完整代码 全局自定义弹出框openCustomDialog CustomDialog是自定义弹出框,可用于广告、中奖、警告、软件更新等与用户交互响应操作。开发者可以通过CustomDialogController类显示自定义弹出框…

CSS基本语法和常用属性

目录 一、CSS二、CSS基本语法三、CSS的三种形式1、行内样式2、内部样式3、外部样式4、三者的优先级问题5、代码演示 四、选择器1 基础选择器1.1标签选择器1.2 ID选择器1.3 Class选择器1.4 属性选择器 2. 组合选择器2.1 层次选择器4.2.2 并列选择器 3. 伪类选择器4、选择器的优先…

白嫖RTX 4090?Stable Diffusion:如何给线稿人物快速上色?

大家都知道,在设计的初期,我们通常会先绘制草图,然后再进行上色处理,最终才开始进行最终的设计工作。在这个上色的过程中,配色是至关重要的一环。这不仅方便了内部同事的评审,也让产品方和客户可以直观地了…

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。

题目:在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值,如此往…

手动配置IP

手动配置IP,需要考虑四个配置项: 四个配置项 IP地址、子网掩码、默认网关、DNS服务器 IP地址:格式表现为点分十进制,如192.168.254.1 子网掩码:用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的&#…

2025年知识竞赛活动怎样办才有新意

2025年的知识竞赛活动要怎样举办才有新意。首先,我们需要理解用户的需求。他们可能是在策划一个活动,想要区别于传统的知识竞赛,吸引更多人参与,尤其是在2025年这样的未来时间点,科技发展可能更快,所以需要…

Chirpy3D:用于创意 3D 鸟类生成的连续部分潜在特征

Chirpy3D框架可以将细粒度的2D图像理解提升至3D生成的全新境界。当前的3D生成方法往往只关注于重构简单的对象,缺乏细致的特征和创造性。Chirpy3D通过结合多视角扩散模型和连续的部件潜在空间,能够生成全新且合理的3D鸟类模型。该系统不仅能够保持细致的…

【Git】ssh如何配置gitlab+github

当我们工作项目在gitlab上,又希望同时能更新自己个人的github项目时,可能因为隐私问题,不能使用同一′密钥。就需要在本地电脑上分别配置两次ssh。 1、分别创建ssh key 在用户主目录下,查询是否存在“.ssh”文件: 如…

用python获取AH股股票列表并且输出-附源代码

用python 获取在A股和香港上市的公司和在A股和香港上市的公司股票代码和名称 import akshare as akdef get_ah_stocks():# 获取A股股票列表a_stock_list ak.stock_zh_a_spot_em()a_stock_list a_stock_list[["代码", "名称"]]# 获取港股股票列表h_stock…

继承QLineEdit类实现自动补全功能

QlineEdit类本身是没有自动补全功能的,可以使用QCompleter配合实现功能。 但是在开发过程中发现,输入的字符串如果匹配那么QCompleter类会弹窗显示匹配项,如果输入的字符串不匹配则QCompleter类会关闭弹出(这点我也倒是能理解,没有…

VMware Workstation Pro 免注册下载链接

VMware Workstation Prohttps://softwareupdate.vmware.com/cds/vmw-desktop/ws/https://softwareupdate.vmware.com/cds/vmw-desktop/ws/ 访问不了或下载速度慢挂VNP

【如何掌握CSP-J 信奥赛中的深搜算法】

CSP-J 信奥赛中的深搜(深度优先搜索)算法是一个重要知识点,以下是一些学习深搜算法的建议: 理解基础概念 定义与原理:深度优先搜索是一种用于遍历或搜索图、树等数据结构的算法。它从起始节点开始,沿着一条…