HTTP 缓存控制 max-age,必须重新验证

2024-01-27

我有几个与缓存控制相关的疑问。

如果我指定缓存控制max-age=3600, must-revalidate对于静态 html/js/images/css 文件,在 HTTP 标头中定义了 Last Modified 标头:

  1. 浏览器/代理缓存(如 Squid/Akamai)是否会一直到达源服务器进行验证在 max-age 到期之前?或者它会从缓存中提供内容直到 max-age 过期吗?
  2. max-age 过期(即缓存过期)后,是否存在 If-Modified-Since 检查,或者是否从源服务器重新下载内容而不进行 If-Modified-Since 检查?

a) 如果服务器包含此标头:

Cache-Control "max-age=3600, must-revalidate"

它告诉客户端缓存和代理缓存,一旦内容过时(超过 3600 秒),它们必须在源服务器上重新验证,然后才能提供内容。这应该是缓存系统的默认行为,但是must-revalidate指令明确了这一要求。

b) 客户应重新验证。它可能会使用重新验证If-Match or If-None-Match带有 ETag 的标头,或者可能使用If-Modified-Since or If-Unmodified-Since带有日期的标题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 缓存控制 max-age,必须重新验证 的相关文章

  • 解析 HTTP 标头值:引用、RFC 5987、MIME 等

    让我困惑的是 HTTP 标头的解码values 示例标头 Some Header quoted string utf 8 en Weirdness 罐头value s被引用 a 的编码怎么样 本身 是 有效的引号字符 分号有什么意义 HTT
  • AWS ALB 截断 HTTP 响应

    我有一个带有目标组的 ALB 和运行 PHP API 的 ECS 集群 我正在尝试查询 API 以获得 CSV 响应 但如果请求通过 ALB 我会得到被截断的结果 当我通过 SSH 连接到运行集群的 EC2 实例并尝试手动运行curl 通过
  • 有人成功用 Robolectric 模拟 HttpRequests 吗?

    我刚刚开始使用 Robolectric 模拟大多数 Android 类似乎工作正常 但是当我的测试类尝试创建 DefaultHttpClient 时 它会收到可怕的 Stub 错误 被测试的类在这一行失败 HttpClient httpcl
  • 对过期会话进行休息调用:HTTP 401 响应导致浏览器显示登录窗口

    我编写了一个 HTML 5 应用程序 它使用 AngularJS 并与在 Tomcat 上运行的 Java REST 后端进行交互 我使用 Spring Security 来处理登录和安全性 当用户进入网站时 他将被转发到登录页面 该页面创
  • 为什么使用 HTTP 动词?

    因为动词的目标是像 server domain getallrecords 或 server domain delete1record 或类似的 URL 而getallrecords delete1record都是专门为特定目的而设计的 为
  • 按照约定应返回哪些 REST PUT/POST/DELETE 调用?

    根据 REST 意识形态 PUT POST DELETE 请求的响应正文中应该包含什么 返回码呢 是HTTP OK enough 如果有的话 这种约定的原因是什么 我发现了一篇描述 POST PUT 差异的好文章 发布与放置 http ww
  • 如何确定服务器是否支持 Range 标头?

    我一直在尝试使用 Range 标头值从特定点流式传输音频 但我总是从一开始就得到歌曲 我正在通过程序执行此操作 因此不确定问题是否出在我的代码中或服务器上 如何确定服务器是否支持 Range 标头参数 Thanks 方式HTTP规范 htt
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • 使用特定 HTTP 方法链接到页面 (DELETE)

    如何像 Rails 那样链接到页面并让浏览器使用 DELETE 方法调用它 我试过 a href DELETE ME a 但不起作用 我使用 Node js 所以我可以用它来处理 DELETE 方法 你不能 链接只会触发 GET 请求 您可
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • RestSharp RestClient的默认超时值是多少?

    任何人都知道默认超时值休息锐利 https github com restsharp 休息客户端 RestSharp 在底层使用 HttpWebRequest 它有一个默认超时 https msdn microsoft com en us
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • $http.get() 与 JSON 数据

    我正在编写一个服务器应用程序 并希望客户端使用正文中的数据来参数化我的 GET 方法 如下所示 http v GET http localhost 3000 url text 123 foo bar GET url HTTP 1 1 Acc
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • 服务器响应中的“连接:保持活动状态”

    我正在尝试建立从 Silverlight 应用程序到 Apache 服务器托管的 PHP 页面的 HTTP 持久连接 即无需为每个 HTTP 请求创建新的 TCP 连接 为此 我需要网络服务器发送其 HTTP 响应 并将 Connectio
  • 使用 flash 或 java servlet 将麦克风数据从浏览器上传到服务器的教程? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 There was a question on how to get data from a microphone on a client
  • Angular 2 - Http - 正确忽略空结果

    我有很多处理请求并简单返回 200 的 REST 端点 我注意到将结果映射为错误json 如果我尝试不进行任何类型的映射 我会看到浏览器警告它无法解析 XML 由于不返回任何内容是很常见的 我很好奇我应该如何处理响应 这是一个基本的代码示例
  • Flutter http请求上传mp3文件

    我使用这个 api 上传 mp3 文件 使用这种方法 Future

随机推荐

  • 获取网络浏览器控件的屏幕截图?

    关于这个问题有很多线索 但没有一个是明确的 而且我尝试过的任何一个实际上都没有工作正常 获取整个 Web 浏览器控件的内容 甚至是屏幕外的内容 的代码是什么 看起来他们确实有 webBrowser1 DrawToBitmap but its
  • 跨平台 SSO - 从哪里开始?

    我正在研究两个不同系统之间的单点登录选项 一个 NET 一个 Java EE 它们各自独立管理并具有单独的用户管理 并且存在一些重叠的用户 我希望能够从一个链接到另一个 而无需重新提示输入密码 SSO 产品和协议似乎有很多选择 我相当有信心
  • 如何过滤对象中的数组

    我的对象中有这些数组 我需要filter tags具有特定值的数组 我不知道如何实现这一目标 const obj slug add an aggregate rating feature to your website frontmatte
  • 无法使用 Debian squeeze 在 Sheevaplug (armv5t) 上构建节点

    我现在已经尝试了几种在运行 Debian 版本 6 0 2 squeeze 的 Sheevaplug armv5t 上构建节点 版本 0 5 1 的方法 但最终总是 node Illegal instruction 在所有情况下我都可以编译
  • 处理 ThreadPoolExecutor 的异常

    我有以下代码片段 基本上扫描需要执行的任务列表 然后将每个任务交给执行器执行 The JobExecutor依次创建另一个执行器 用于执行数据库操作 读取数据并将数据写入队列 并完成任务 JobExecutor返回一个Future
  • data.table 在函数中修改后首次调用时不显示[重复]

    这个问题在这里已经有答案了 在我的函数中 我修改作为参数给出的 data table 的列 我注意到 如果我在调用该函数后尝试显示此 data table 我的意思是 仅按其名称 则不会发生任何事情 并且只有后续调用才会显示该表 DT lt
  • 如何使用 CMake 链接 .so 文件 [重复]

    这个问题在这里已经有答案了 我想基于 cpp h 和多个 so 文件重建一个简单的应用程序 据我所见 我的 CMakeLists txt 应该是这样的 cmake minimum required VERSION 3 5 set CMAKE
  • Team Foundation 工作项类型中的产品待办事项列表项和功能之间的区别

    我有关于 Microsoft Team Foundation 的问题 在 Visual Studio 的团队资源管理器中 我可以创建一个新的工作项 此处的工作项类型由您的团队选择的流程模板决定 我不确定我们使用的是哪个流程模板 无论如何 在
  • 使用 numpy 进行高效迭代

    我编写了计算数组 y 的周期 p 中每个元素的平均值的代码 import numpy as np p 4 y np asarray 146 96 59 133 192 127 79 186 272 155 98 219 c len y p
  • JS 错误:元素未附加到文档

    我正在尝试使用将 div 转换为图像html2canvas https html2canvas hertzen com lib 但我不断收到该错误 html2canvas min js 20 Uncaught in promise Erro
  • UNHEX 和 X (MySQL) 之间的区别

    在处理数据库中的十六进制值时 MySQL UNHEX 和 X 之间到底有什么区别 Eg SELECT FROM test WHERE guidCol IN UNHEX hexadecimalstring SELECT FROM test W
  • 为什么不在一个类中编码呢? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 现在我正在学习设计模式 我正在徘徊以下内容 为什么不在 1 个类中编写所有方法 每个方法执行 1 个任务 这样我的客户端就可以访问 1 个文件中
  • 超时的 Haskell 函数[重复]

    这个问题在这里已经有答案了 import Math NumberTheory Primes factorise import System Timeout timeout import Control Monad liftM type Re
  • Twilio 将发布收集的数字及其他详细信息

    我可以通过 twilio 收集的数字发送附加数据吗 我想要实现的是 如果有人发送一条短信说 帮助 我们会致电支持团队并询问他们我们已收到短信 如果他们想与之交谈 请按 1 如果他们按 1 我们将能够拨打我们收到短信的号码 我正在检查 twi
  • Java 中连续“if”语句的简化[重复]

    这个问题在这里已经有答案了 我有一系列if语句 如下图 if board x 1 y true ar 1 if board x y 1 true ar 1 if board x 1 y true ar 1 if board x y 1 tr
  • OpenCV - 如何在拼接图像的对应点之间进行映射

    我正在使用 OpenCV 3 2 并且设置了一个缝合器来缝合两个图像 缝合效果很好 但是一旦完成 我希望能够确定从图像 A 中的点到图像 B 中对应点的映射 我不关心图像在全景图中的布局方式 我只需要能够从 x A y A 图像 A 中的点
  • 从 power bi 公共嵌入中删除共享栏

    我有一份关于 power bi 的报告 已发布在网络上 我将在我的计算机上创建一个本地页面 以通过嵌入代码查看它 并在 Dropbox 上与其他人共享 我想删除带有社交媒体链接的按钮栏以防止共享 我还可以阻止显示 iframe 源链接吗 也
  • for 循环中的隐式内存别名

    我正在使用 golangci lint 并且在以下代码中收到错误 versions ObjectDescription populate versions for i v range versions res createWorkerFor
  • 如何在 postgresql 中创建 n-gram

    我希望在我的应用程序中具有搜索功能 我使用 trigram 来实现它 并且工作正常 问题是 trigram 正在创建单词的 3 个字符组的序列 我想要在单个对象中包含超过 3 个字符 例如 select show trgm abcpqrs
  • HTTP 缓存控制 max-age,必须重新验证

    我有几个与缓存控制相关的疑问 如果我指定缓存控制max age 3600 must revalidate对于静态 html js images css 文件 在 HTTP 标头中定义了 Last Modified 标头 浏览器 代理缓存 如