如果我不设置缓存过期会发生什么

2024-02-07

我正在 google pagespeed Insights 上测试我的页面,它返回:在静态资源的 HTTP 标头中设置到期日期或最长期限,指示浏览器从本地磁盘而不是通过网络加载以前下载的资源.

我的假设是,如果我不设置过期时间,我的文件将永远不会过期。这是不正确的吗?

到目前为止我看到的所有文章都讨论了如何设置过期时间,但它们没有解释如果我不设置过期时间会发生什么。

有谁真正知道会发生什么?浏览器每次都会重新请求文件吗?


浏览器将使用某些启发法猜测可缓存资源的新鲜度。

相关摘录自RFC 7234 - 超文本传输​​协议 (HTTP/1.1):缓存 https://www.rfc-editor.org/rfc/rfc7234#section-4.2.2:

4.2.2.计算启发式新鲜度

由于源服务器并不总是提供明确的过期时间, 当明确的时间时,缓存可以分配启发式过期时间 未指定,采用使用其他头字段的算法 值(例如上次修改时间)来估计合理的 过期时间。本规范没有提供具体的 算法,但确实对其结果施加了最坏情况的限制。

欲了解更多信息,请检查重新审视浏览器缓存的状态 https://www.mnot.net/blog/2017/03/16/browser-caching马克·诺丁汉的文章。

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

如果我不设置缓存过期会发生什么 的相关文章

随机推荐

  • Intellij idea无法解决maven中的任何问题

    我刚刚导入了一个项目pom xml 但 IDE 没有解决 Maven 依赖项中的任何内容 任何定义在pom xml代码中导入时的依赖项引发错误cannot resolve symbol xxxxx But mvn install会起作用 我
  • vim - 在“替换”表达式中调用函数

    我知道你可以在 vim 搜索 替换操作中调用函数 例如 s regex localtime g 将用当前纪元时间替换任何匹配 正则表达式 的内容 问题是 我无法在 替换 表达式中添加任何其他内容 例如 s regex epoch local
  • 是否可以在华为设备上实现Firebase动态链接?

    我创建了使用动态链接的android应用程序 FirebaseApp initializeApp context Firebase dynamicLinks getDynamicLink intent addOnSuccessListene
  • 用于运行 pytest 的 Azure 自托管代理

    我已经在本地虚拟机上安装了一个自托管代理 它连接到 azure 没有任何问题 我在 azure DevOps 上有一个 python 代码 我已将所有requirements txt要求手动安装到本地VM的cmd行中 以便安装在其上的自托管
  • 从 ImageField Django 2.0 获取 EXIF 数据

    我正在执行提取通过 DJANGO 2 1 2 上传的照片的 exif 数据的任务 这是我的 model py 更新型号 class UploadedImage models Model image models ImageField Upl
  • Shell GNU-Screen -X 的问题

    OPTIONS java Xms1024M Xmx1024M jar craftbukkit jar PROCESS server01 screen dmS PROCESS OPTIONS nogui Starting the applic
  • 高效替换 text2vec 中的单词

    我有一个很大的文本正文 我想有效地用它们各自的同义词替换单词 例如 用同义词 汽车 替换所有出现的 汽车 但我很难找到一种合适的 有效的方法 来做到这一点 为了后面的分析 我使用text2vec库 并且也想使用该库来完成此任务 避免tm以减
  • 如何创建一个 ImageView 填充父级高度并显示尽可能大的 Image?

    我有一个按以下方式定义的 ImageView
  • 从 C# 运行宏 [重复]

    这个问题在这里已经有答案了 我知道你可以使用Microsoft Office Interop Excel 在 C 程序中使用 VBA 命令 我有接近 10 000 行代码的 VBA 将其转换为 C 兼容命令是不现实的 它创建一个工作簿并执行
  • 有没有更好的方法来控制子进程的 PYTHONPATH?

    我有一组必须动态修改 os sys path 的脚本 然后脚本启动一个子进程 理想情况下 子进程应与调用者具有相同的 os sys path 我想避免将其作为参数传递 因为这需要修改子进程脚本 我有可以运行并满足我所有需求的代码 我想知道是
  • 尝试将所有组件更改为es6

    我正在尝试将所有组件更改为 es6 我做了两个 但不知道第三个该怎么做 你能告诉我如何改变它吗 下面提供我的代码 export default class FirstTimeTab extends React Component getIn
  • Twig 与 Symfony 2 显示 prod 和 dev 之间不同的 json 编码变量

    我们正在构建一个 Symfony 2 应用程序 它将一些数据从控制器发送到视图 控制器 user array configuration gt array levels gt array warning gt 0 05 danger gt
  • 缩放数组(矩阵)

    该程序的目的是创建一个更大的字节数组 将原始数组放大 10 倍 例如 0 0 中的 1 应该是新数组中由 1 组成的 10x10 正方形 我提供了代码和输出 它们在填充较大数组期间似乎可以正常工作 但随后会打印不同的值 我目前正在尝试仅使用
  • browser.sleep 和 browser.pause 不会被执行

    我是量角器和打字稿的新手 现在正在尝试 PoC 框架 但是 我想知道为什么 browser sleep 或 browser pause 在以下场景中不被执行 第一步通过后测试立即退出 Given I access the Catalogue
  • 向当前日期添加一个月

    我必须在今天的日期上添加一个月 并且必须获得 1 个月后的日期 有人可以帮忙吗 Dim newDate as DateTime DateTime Now AddMonths 1
  • 套接字失去连接

    我知道 Twisted 可以很好地做到这一点 但是如果只是简单的套接字呢 你如何判断套接字中的连接是否随机丢失 就像 如果我的互联网在一秒钟内停止并重新连接 我假设你正在谈论 TCP 如果您的互联网连接中断了一秒钟 您可能根本不会丢失 TC
  • 从java中的.p7b文件中提取单个.cer证书

    我是密码学新手 如果您认为这是一个基本问题 请原谅 我有一个 p7b 文件 我需要读取并提取各个公共证书 即 cer 文件并将其存储在密钥存储中 我不必担心密钥存储中的持久性 因为已经有一个服务将 cer 文件作为byte 并保存它 我想知
  • mysql_insert_id();成功插入行后不返回值

    我发誓我已经在这个网站和其他网站上倾注了所有其他类似的问题 但我想我只是错过了一些东西 希望有人能指出我的大脑向我隐藏的一个愚蠢的错误 我的脚本将表单中的值插入到名为 notes 的表中 此时 它通过名为 newRelationship 的
  • 查找一天中花费的时间以及所花的工间休息时间

    我现在的情况是 我需要找出一些内部申请在办公室花费的总时间 我有这样的样本数据 Id EmployeeId ScanDateTime Status 7 87008 2018 08 02 16 03 00 227 1 8 87008 2018
  • 如果我不设置缓存过期会发生什么

    我正在 google pagespeed Insights 上测试我的页面 它返回 在静态资源的 HTTP 标头中设置到期日期或最长期限 指示浏览器从本地磁盘而不是通过网络加载以前下载的资源 我的假设是 如果我不设置过期时间 我的文件将永远