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

反向代理-缓存篇

文章目录

  • 强缓存
    • 一、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 常用选项的选择


http://www.kler.cn/a/429844.html

相关文章:

  • el-table 合并单元格
  • 【黑马程序员三国疫情折线图——json+pyechart=数据可视化】
  • XS5037C一款应用于专业安防摄像机的图像信号处理芯片,支持MIPI和 DVP 接口,内置高性能ISP处理器,支持3D降噪和数字宽动态
  • 根据浏览器的不同类型动态加载不同的 CSS 文件
  • ubuntu22.04 使用可以用的镜像源获取你要的镜像
  • 数据结构与算法学习笔记----树与图的深度优先遍历
  • MACOS M1/M2芯片 Homebrew 安装教程
  • FastAPI解决跨域报错net::ERR_FAILED 200 (OK)
  • REDMI瞄准游戏赛道,推出小屏平板
  • 单片机C51--笔记8-STC89C51RC/RD-IIC协议
  • 太速科技-614-基于6U VPX FPGA VU9P 4路100G、32路10Gbps的光纤卡
  • 力扣第95题 不同的二叉搜索树 II
  • 【WebRTC】Android SDK使用教学
  • 如何使用靜態IP代理?【詳細教程】
  • 云原生周刊:在Docker上部署大语言模型
  • scala 身份证号码
  • hping3-网络工具
  • Brain.js(六):构建FNN神经网络实战教程 - 用户喜好预测
  • 鸿蒙实现后台任务管理
  • 「Mac畅玩鸿蒙与硬件44」UI互动应用篇21 - 随机励志语录生成器
  • Springboot3整合Redis
  • Fyne ( go跨平台GUI )中文文档-Fyne总览(二)
  • gitlab配置调试minio
  • Java将数组转换成字符串