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

HTTP 缓存

缓存

web缓存是可以自动保存常见的文档副本的HTTP设备,当web请求抵达缓存时,如果本地有已经缓存的副本,就可以从本地存储设备而不是从原始服务器中提取这个文档。使用缓存有如下的优先。

  1. 缓存减少了冗余的数据传输
  2. 缓存环节了网络瓶颈的问题
  3. 缓存降低了对原始服务器的要求
  4. 缓存降低了距离时延。

冗余的数据传输

很多客户端访问一个流行的原始服务器页面的时候,服务器会多次传送同一份文档。每次传送给一个客户端,一些相同的字节会在网络中一遍遍地传输。这些冗余的数据传输会耗尽昂贵的网络带宽,降低传输速度,加重 Web 服务器的负载。

带宽瓶颈

很多网络中为本地网络客户端提供的带宽比远程服务器提供的带宽要宽。客户端会以路径上最慢的网速访问服务器。如果客户端从一个快速局域网的缓存中得到了一份副本,那么缓存就可以提高性能,尤其是要传送较大的文件的时候。

瞬间拥塞

缓存在破坏瞬间拥塞的时候显得十分重要,突发事件回事很多人去访问一个web文件,会出现瞬间拥塞,由此会造成过多流量峰值会使得web服务器发生毁灭性的崩溃。

距离时延

客户端和服务器之间没有太多的路由器,光速自身也会造成显著的时延。

命中和未命中的

缓存可以在任意时刻,任意的频率对副本进行验证。 缓存对缓存的副本进行在验证的时候,会向原始服务器发送一个小的在验证请求,如果内容没有发生变化,服务器会以一个小的304not modified进行响应,只要缓存知道副本任然有效,就会将副本标识为暂时新鲜的。并将副本提供给客户端这被称作再验证命中或缓慢命中。
HTTP提供了几个对已缓存对象进行在验证的工具,if-modified-since 。将这个首部添加到get请求中,就可以告诉服务器,只有在缓存了对象的副本之后,又对其进行了修改的情况下,才可以发送对象。
服务器内容未修改,服务器内容已经修改,或者服务器上的对象被删除了。服务器收到GETIf-modified-since请求时候会发生的情况。

  • 再验证命中: 如果服务器对象未被修改,服务器会向客户端发送一个小的HTTP304NotModified响应
  • 再验证未命中: 如果服务器对象与已缓存副本不同,服务器向客户端发送一条普通的,带有完整内容的HTTP200OK响应
  • 对象被删除: 如果服务器对象已经被删除了,服务器就回送一个 404 Not Found 响应,缓存也会将其副本删除。
    缓存命中率: 由于缓存提供服务请求所占的比例被称为缓存命中率
    字节命中率: 缓存提供的字节在传输的所有字节中所占的比例
    HTTP 没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的。在这两种情况下,响应码都是200OK,说明响应有主体部分。有
    些商业代理缓存会在Via首部附加一些额外信息,以描述缓存中发生的情况。客户端有一种方法可以判断响应是否来自缓存,就是使用 Date 首部。将响应中
    Date 首部的值与当前时间进行比较,如果响应中的日期值比较早,客户端通常就可以认为这是一条缓存的响应。客户端也可以通过 Age 首部来检测缓存的响应,通过这个首部可以分辨出这条响应的使用期

缓存的拓扑结构

私有缓存: Web 浏览器中有内建的私有缓存——大多数浏览器都会将常用文档缓存在你个人电脑的磁盘和内存中,并且允许用户去配置缓存的大小和各种设置。还可以去看看浏览器的缓存中有些什么内容
公有代理缓存:公有缓存是特殊的共享代理服务器,被称为缓存代理服务器
在这里插入图片描述

在这里插入图片描述

相关首部字段

Cache-Control: max-age: 文档的最大使用期
Expires: 指定一个绝对的过期日期
If-Modified-Since: :如果从指定日期之后文档被修改过了,就执行请求的方法
If-None-Match: : 服务器可以为文档提供特殊的标签
在这里插入图片描述

强弱验证器: 只要内容发生了变化,强弱验证器就会发生变化。

Cache-Control: no-store 和 Cache-Control: no-cache

Cache-Control: no-store: 禁止缓存对响应进行复制,缓存通常会像非缓存代理服务器一样,向客户端转发一条no-store响应。
Cache-Control: no-cache: 响应实际上是可以存储再本地缓存区中的,必须和服务器进行新鲜度验证,才能提供给客户端使用
Cache-Control: max-age=3600 表示的是从服务器将文档传来之时起,可以认为文档处于新鲜状态的秒数。
Expires: 实际的过期日期,而不是秒数。
Cache-Control: must-revalidate 响应首部告诉缓存,可以再实现没有和原始服务器进行再缓存的情况下,不能提供这个对象的陈旧副本。缓存仍然可以随意提供新鲜的副本。如果在缓存进行must-revalidate新鲜度检查时,原始服务器不可用,缓存就必须返回一条504Gateway Timeout错误。
在这里插入图片描述

相关文章:

HTTP 缓存

缓存 web缓存是可以自动保存常见的文档副本的HTTP设备,当web请求抵达缓存时,如果本地有已经缓存的副本,就可以从本地存储设备而不是从原始服务器中提取这个文档。使用缓存有如下的优先。 缓存减少了冗余的数据传输缓存环节了网络瓶颈的问题…...

设计模式实战:图形编辑器的设计与实现

简介 本篇文章将介绍如何设计一个图形编辑器系统,系统包括图形对象的创建、组合、操作及撤销等功能。我们将通过这一项目,应用命令模式、组合模式和备忘录模式来解决具体的设计问题。 问题描述 设计一个图形编辑器系统,用户可以创建并操作图形对象,将多个图形对象组合成…...

.NET 情报 | 分析某云系统添加管理员漏洞

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…...

vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用

mixin.ts 定义滑动距离的变量和检测触摸开始的方法&#xff0c;滑动方法&#xff0c;并导出两个方法 sendTranslateX.value > 250 && sendTranslateY.value < -100是向上滑动&#xff0c;满足距离后执行回调函数func&#xff0c;并在一秒内不再触发&#xff0c;一…...

opencv 优势

OpenCV(开源计算机视觉库)是一个广泛使用的计算机视觉和机器学习软件框架。它最初由Intel开发,后来由Itseez公司维护,最终于2015年成为非营利组织OpenCV.org的一部分。OpenCV的目的是实现一个易于使用且高效的计算机视觉框架,支持实时视觉应用。 以下是关于OpenCV的一些关…...

1-如何挑选Android编译服务器

前几天&#xff0c;我在我的星球发了一条动态&#xff1a;入手洋垃圾、重操老本行。没错&#xff0c;利用业余时间&#xff0c;我又重新捣鼓捣鼓代码了。在接下来一段时间&#xff0c;我会分享我从服务器的搭建到完成Android产品开发的整个过程。这些东西之前都是折腾过的&…...

【JS逆向课件:第十六课:Scrapy基础2】

ImagePipeLines的请求传参 环境安装&#xff1a;pip install Pillow USER_AGENT Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36需求&#xff1a;将图片的名称和详情页中图片的数据进行爬取&a…...

使用 PowerShell 自动化图像识别与鼠标操作

目录 前言功能概述代码实现1. 引入必要的程序集2. 定义读取文件行的函数3. 定义加载图片的函数4. 定义查找小图像在大图像中的位置的函数5. 定义截取全屏的函数6. 定义模拟鼠标点击的函数7. 定义主函数 配置文件示例运行脚本结语全部代码提示打包exe 下载地址 前言 在日常工作…...

组队学习——支持向量机

本次学习支持向量机部分数据如下所示 IDmasswidthheightcolor_scorefruit_namekind 其中ID&#xff1a;1-59是对应训练集和验证集的数据&#xff0c;60-67是对应测试集的数据&#xff0c;其中水果类别一共有四类包括apple、lemon、orange、mandarin。要求根据1-59的数据集的自…...

【数据中心】数据中心的IP封堵防护:构建网络防火墙的基石

数据中心的IP封堵防护&#xff1a;构建网络防火墙的基石 引言一、理解IP封堵二、IP封堵的功能模块及其核心技术三、实施IP封堵的关键策略四、结论 引言 在当今高度互联的世界里&#xff0c;数据中心成为信息流动和存储的神经中枢&#xff0c;承载着企业和组织的大量关键业务。…...

LangChain的使用详解

一、 概念介绍 1.1 Langchain 是什么&#xff1f; 官方定义是&#xff1a;LangChain是一个强大的框架&#xff0c;旨在帮助开发人员使用语言模型构建端到端的应用程序&#xff0c;它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供…...

Modbus转BACnet/IP网关快速对接Modbus协议设备与BA系统

摘要 在智能建筑和工业自动化领域&#xff0c;Modbus和BACnet/IP协议的集成应用越来越普遍。BA&#xff08;Building Automation&#xff0c;楼宇自动化&#xff09;系统作为现代建筑的核心&#xff0c;需要高效地处理来自不同协议的设备数据&#xff0c;负责监控和管理建筑内…...

万字长文之分库分表里无分库分表键如何查询【后端面试题 | 中间件 | 数据库 | MySQL | 分库分表 | 其他查询】

在很多业务里&#xff0c;分库分表键都是根据主要查询筛选出来的&#xff0c;那么不怎么重要的查询怎么解决呢&#xff1f; 比如电商场景下&#xff0c;订单都是按照买家ID来分库分表的&#xff0c;那么商家该怎么查找订单呢&#xff1f;或是买家找客服&#xff0c;客服要找到对…...

如何查看jvm资源占用情况

如何设置jar的内存 java -XX:MetaspaceSize256M -XX:MaxMetaspaceSize256M -XX:AlwaysPreTouch -XX:ReservedCodeCacheSize128m -XX:InitialCodeCacheSize128m -Xss512k -Xmx2g -Xms2g -XX:UseG1GC -XX:G1HeapRegionSize4M -jar your-application.jar以上配置为堆内存4G jar项…...

科研绘图系列:R语言TCGA分组饼图(multiple pie charts)

介绍 在诸如癌症基因组图谱(TCGA)等群体研究项目中,为了有效地表征和比较不同群体的属性分布,科研人员广泛采用饼图作为数据可视化的工具。饼图通过将一个完整的圆形划分为若干个扇形区域,每个扇形区域的面积大小直接对应其代表的属性在整体中的占比。这种图形化的展示方…...

ReadAgent,一款具有要点记忆的人工智能阅读代理

人工智能咨询培训老师叶梓 转载标明出处 现有的大模型&#xff08;LLMs&#xff09;在处理长文本时受限于固定的最大上下文长度&#xff0c;并且当输入文本越来越长时&#xff0c;性能往往会下降&#xff0c;即使在没有超出明确上下文窗口的情况下&#xff0c;LLMs 的性能也会随…...

构建智能:利用Gradle项目属性控制构建行为

构建智能&#xff1a;利用Gradle项目属性控制构建行为 Gradle作为一款强大的构建工具&#xff0c;提供了丰富的项目属性管理功能。通过项目属性&#xff0c;开发者可以灵活地控制构建行为&#xff0c;实现条件编译、动态配置和多环境构建等高级功能。本文将详细解释如何在Grad…...

如何通过smtp设置使ONLYOFFICE协作空间服务器可以发送注册邀请邮件

什么是ONLYOFFICE协作空间 ONLYOFFICE协作空间&#xff0c;是Ascensio System SIA公司出品的&#xff0c;基于Web的&#xff0c;开源的&#xff0c;跨平台的&#xff0c;在线文档编辑和协作的解决方案。在线Office包含了最基本的办公三件套&#xff1a;文档编辑器、幻灯片编辑…...

SQL labs靶场-SQL注入入门

靶场及环境配置参考 一&#xff0c;工具准备。 推荐下载火狐浏览器&#xff0c;并下载harkbar插件&#xff08;v2&#xff09;版本。hackbar使用教程在此不做过多描述。 补充&#xff1a;url栏内部信息会进行url编码。 二&#xff0c;SQL注入-less1。 1&#xff0c;判断传参…...

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4

基础认证题库请移步&#xff1a;HarmonyOS应用开发者基础认证题库 注&#xff1a;有读者反馈&#xff0c;题库的代码块比较多&#xff0c;打开文章时会卡死。所以笔者将题库拆分&#xff0c;单选题20个为一组&#xff0c;多选题10个为一组&#xff0c;题库目录如下&#xff0c;…...

AI时代DevSecOps脚手架:5分钟构建安全合规的React+Supabase应用

1. 项目概述&#xff1a;一个为AI编码时代量身定制的DevSecOps启动器 如果你和我一样&#xff0c;经常用 Cursor、Lovable 这类 AI 编程工具快速构建应用原型&#xff0c;那你肯定遇到过这个痛点&#xff1a;项目跑起来了&#xff0c;功能也实现了&#xff0c;但当你准备把它变…...

【奇点智能大会独家解密】:大模型AB测试+影子流量+语义一致性校验三位一体灰度框架

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;大模型灰度发布策略&#xff1a;奇点智能大会 在2024年奇点智能大会上&#xff0c;多家头部AI平台首次系统性披露了面向千亿参数级大模型的灰度发布实践框架。该策略核心在于将模型更新从“全量切换”…...

AI 短视频运营技能包|选题 + 爆款 + 增长全流程 AI 辅助

AI 短视频运营技能包:https://ai-skills.ai/?inviteCode=S2JV3NCK AIGC短视频制作教程:https://pan.baidu.com/s/1usF3eo43h2k91m6R6ycDpQ?pwd=ufkk 目录 摘要 前言 一、技能包概述 二、核心功能详解 1. 赛道定位分析 2. 内容方向规划 3. 热门趋势追踪 4. 优质选题…...

Claude Code 完全指南:从零开始掌握 AI 编程助手

本指南适合对象:完全零基础的初学者、希望系统学习 Claude Code 的开发者、想要最大化利用 AI 辅助编程效率的技术人员。 阅读时间:预计 20-30 分钟完整阅读,实操学习 2-3 天。 文档版本:基于 Claude Code v2.1.x(2026年5月) 目录 Claude Code 完全指南:从零开始掌握 A…...

DRAM控制器优化与内存带宽保障技术解析

1. DRAM控制器架构演进与优化实践现代计算机系统中&#xff0c;DRAM控制器的设计直接影响着内存子系统的整体性能表现。传统控制器采用统一事务队列架构&#xff0c;这种设计虽然实现简单&#xff0c;但在实际应用中暴露出明显的性能瓶颈。让我们深入分析这种架构的局限性及其优…...

Agent才不会“赢家通吃“,证据来了……

Claude Code已经赢成这样了&#xff0c; 顺带又做了CMA&#xff0c; 定义下一代企业级Agent infra。 Claude Code『同款』infra&#xff0c; 谁不想用。 谁又不想卖可复用的工具呢。 这样下去&#xff0c; 做Agent infra须有爆款Agent证明自己吗&#xff1f; 肯定很多人反对&am…...

独立开发者工具箱:2026年全栈与AI应用高效开发技术栈指南

1. 项目概述与核心价值作为一名在独立开发领域摸爬滚打了十多年的老兵&#xff0c;我深知一个道理&#xff1a;工具选型&#xff0c;是决定项目成败的第一道分水岭。你花在纠结技术栈、寻找合适API、调试部署环境上的每一分钟&#xff0c;都是从产品核心价值中偷走的时间。今天…...

在Python项目中下载OpenAI兼容SDK并接入Taotoken聚合API

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Python项目中下载OpenAI兼容SDK并接入Taotoken聚合API 对于使用Python的开发者而言&#xff0c;通过OpenAI官方风格的SDK接入大模…...

别再手动拷贝文件了!HBuilder X 5+App项目配置详解:如何用URL入口一键发布Web应用到手机

HBuilder X 5App远程URL打包实战&#xff1a;告别低效文件拷贝的工程化解决方案 每次修改前端代码都要重新打包APK&#xff1f;还在为资源路径问题焦头烂额&#xff1f;HBuilder X的5App项目其实藏着更优雅的解决方案——远程URL入口配置。这个被多数开发者忽略的功能&#xff…...

cPanel黑色星期:44000台服务器遭勒索攻击后,三个新漏洞紧急修复

cPanel黑色星期&#xff1a;44000台服务器遭勒索软件攻击后&#xff0c;三个新漏洞已修复 如果您运行的服务器使用了cPanel或WHM&#xff0c;那么请仔细阅读本文。 2026年5月8日&#xff0c;就在cPanel的CVE - 2026 - 41940身份验证绕过漏洞被利用&#xff0c;导致44000台虚拟主…...