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

反向代理-缓存篇

文章目录

  • 强缓存
    • 一、Expires(http1.0 规范)
    • 二、cache-control(http1.1 出现的 header 信息)
        • Cache-Control 的常用选项
        • Cache-Control 常用选项的选择
    • 三、弊端
  • 协商缓存
    • 一、ETag
    • 二、If-None-Match
    • 三、Last-modified
    • 四、If-Modified-Since
  • 浏览器的三种刷新方式
  • 静态资源部署策略-资源(一)
  • 静态资源部署策略-html(二)
  • 动态请求静态化处理
  • 架构改进-全页面静态化
  • 交易验证优化
  • 数据库行锁性能优化-版本一🥩
  • 数据库行锁性能优化-版本二🥩
  • 异步同步数据库
    • 存在的问题
  • 回查机制-库存操作流水
  • 库存数据库最终一致性保证
  • 库存售罄
  • 现有缺陷
  • 秒杀令牌原理
  • 队列泄洪原理

在这里插入图片描述

强缓存

一、Expires(http1.0 规范)

Expires 的值为一个绝对时间的 GMT 格式的时间字符串,例如 Mon,10 Jun 2015 21:31:24 GMT。若发送请求的时间在 expires 之前,则本地缓存有效;否则,将发送请求至服务器以获取资源。

二、cache-control(http1.1 出现的 header 信息)

通过 max-age 值进行判断,它是一个相对值。浏览器依据第一次的请求时间和 Cache-Control 设置的有效期,计算出资源过期时间。再将该过期时间与当前时间进行比较,若请求时间在过期时间之前,则能命中缓存,否则不行。Cache-Control 的设置由服务器完成,前端无需进行任何操作。

Cache-Control 的常用选项
选项含义
max-age=100缓存 100 秒后过期,资源缓存在本地。
no-cache不使用本地缓存,使用协商缓存。先与服务器确认返回的响应是否被更改,若之前的响应中存在 ETag,则请求时会与服务端验证。若资源未被更改,则可避免重新下载。
no-store所有内容都不会被缓存,既不使用强制缓存也不使用协商缓存。每次用户请求该资源,都会向服务器发送一个请求,服务器再返回资源。
public可以被所有的用户缓存,包括客户端和代理服务器。
private只能被客户端缓存,不允许 CDN 等中继缓存服务器对其缓存。
s-maxage覆盖 max-age,作用域与 max-age 一样,但只用于代理服务器中缓存。

在浏览器下一次请求同样的文件时,浏览器会检查 max-age 是否过期。若未过期,则直接从本地缓存中获取资源,不会向服务器再次发起请求;若过期,浏览器会像第一次一样向服务器发起请求。一旦使用强缓存且未过期,就不会再向服务器发起请求。

Cache-Control 常用选项的选择

相关文章:

反向代理-缓存篇

文章目录 强缓存一、Expires(http1.0 规范)二、cache-control(http1.1 出现的 header 信息)Cache-Control 的常用选项Cache-Control 常用选项的选择三、弊端协商缓存一、ETag二、If-None-Match三、Last-modified四、If-Modified-Since浏览器的三种刷新方式静态资源部署策略…...

【伪代码】数据结构-期末复习 线性表

目录 例1 矩阵相乘 线性表 2.1 线性表的类型定义 例2-1 求并集 LALA∪LB 例2-2 有序表归并 2. 2 线性表的顺序表示和实现 1.构造空表 2.插入 3.删除 4.定位 顺序表的优点: 顺序表的缺点: 例…...

JavaWeb学习、过滤器、ajax异步请求、json、jquery-api文档

一、过滤器: 按照过滤规则筛选出想要的资源。 为什么使用过滤器? 1. 很多地方都需要判断是否登录。如果我们在每个资源出进行判断,非常麻烦。我们可以使用过滤器在访问这些资源前进行判断。 (这样就不用在主界面,修改…...

深入探索 JVM:原理、机制与实战

一、JVM 概述 JVM(Java Virtual Machine)是 Java 程序运行的核心组件,它提供了一个独立于硬件和操作系统的执行环境,使得 Java 程序能够在不同平台上具有跨平台的特性。 JVM 主要由以下几部分组成: 类装载器&#xf…...

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 (1)基本介绍。 (2)基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 (1)实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…...

支付宝租赁小程序助力便捷生活新方式

内容概要 支付宝租赁小程序为现代人带来了许多惊喜,它不仅仅是一个简单的租赁平台,更是生活中不可或缺的好帮手。想象一下,无论你缺少什么,从工具到家居用品,只需轻轻一点,便能轻松找到需要的物品。这个小…...

Linux-ubuntu环境配置

一,安装VWware,里面导入镜像文件 这些都是文件夹里面有的,然后对着正点原子视频安装就行,虚拟机的破解码,去百度搜一个能用就行,中间遇见俩问题。①乌班图里面不能上网,②插入U盘后,…...

深入解析下oracle的number底层存储格式

oracle数据库中,number数据类型用来存储数值数据,它既可以存储负数数值,也可以存储正数数值。相对于其他类型数据,number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...

nginx代理rabbitmq和配置 Nginx 代理达梦数据库

在 Nginx 中使用 stream 模块进行 TCP 代理时,可以将 TCP 或 UDP 流量转发到指定的后端服务器。你给出的配置是一个用于代理 RabbitMQ 的示例,具体是在 TCP 层上代理 5672 端口的流量。 只能在nginx.conf配置上代理 stream {# 定义 upstream&#xff0c…...

汉语唤醒词的模糊判断(Python)

汉语唤醒词的模糊判断【Python】 说明安装库代码Demo其他 说明 这是一个简单的汉语模糊唤醒词的判断器,汉语发音中前后舌以及声母韵母的区别,如果进行精准判断,很容易误判。需要一个模糊判断的逻辑! 安装库 pip install pypinyin代码Demo …...

Redis篇-2--原理篇1--I/O多路复用机制(5种I/O模型,I/O多路复用)

I/O多路复用机制: Redis 是通过I/O多路复用机制来管理大量客户端连接。这使得redis可以实现通过单线程来处理多个客户端连接的请求,避免了为每个客户端创建独立的线程,从而减少了上下文切换的开销,提高了系统的并发性和性能。 理解…...

Knowledge Graph Studio:让知识图谱构建更简单、更智能

一、前言 上周和研究院的同事讨论 2025 年大模型产品规划时,让我产生了一些疑惑和不解,因为从大家交流的规划方向来看,更多的还是集中在Prompt提示词工程(包括提示词的管理、测试、评估、调优)这一块规划的确实挺细&a…...

vue 中实现音视频播放进度条(可拖拽,满足常见开发需求)

由于开发需要,作者封装了一个音视频播放进度条的组件,支持 vue2 及 vue3 ,有需要的朋友后台私信作者获取组件源码哦(工作日每天都在线),下面是对该款组件的介绍。 组件默认样式👇(组…...

[免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue企业OA自动化办公管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue企业OA自动化办公管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术在管理上越来越深入…...

笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景

一、目的:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景 BitmapSource 是 WPF 中图像处理的基类,提供了许多派生类来处理不同类型的图像源。以下是一些常见的 BitmapSource 派生类、它们的主要功…...

JAVA基础学习笔记_多线程

文章目录 多线程并发和并行多线程的实现方式Thread类实现Runnable接口方式实现callable接口和Future接口实现 常用的成员方法线程的生命周期线程的安全问题同步代码块同步方法lock锁死锁 生产者和消费者(等待唤醒机制)阻塞队列实现等待唤醒机制线程的6种状态线程池自定义线程池…...

什么是自动化办公

自动化办公是指使用技术工具或软件,通过预设流程或脚本,自动执行日常办公任务,从而提升效率、减少错误、节约时间的办公模式。它适用于需要重复性、规则明确的工作流程,让员工将精力集中在更具创造性和战略性的工作上。 自动化办公…...

数据库系统

数据库模式 3个阶段以及各自的产物: 1、需求分析(数据流图、数据字典、需求说明书); 2、概念结构设计(ER模型); 3、逻辑结构设计(关系模式)); 关…...

文件系统--底层架构(图文详解)

一、文件系统的底层存储与寻址 当我们谈到文件系统的底层结构时,最关键的问题是:文件的数据与元数据(属性)如何存储在磁盘上,以及系统是如何定位这些数据的?在谈及文件系统之前,我们要先对储存…...

【OCR】——端到端文字识别GOT-OCR2.0不香嘛?

代码:https://github.com/Ucas-HaoranWei/GOT-OCR2.0?tabreadme-ov-file 在线demo:https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo 0.前言 最早做ocr的时候,就在想如何能做一个端到端的模型,就不用先检测再…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...