如果源响应上未设置 Cache-Control 标头,CloudFront 将如何表现?

问题描述 投票:0回答:1

我有一个来源,它没有在其响应中设置缓存控制标头。看起来好像这些响应没有被 CloudFront 缓存(我从来没有看到

x-cache: Hit from cloudfront
标头),但我想知道这种行为是否记录在任何地方。

这些请求似乎可能会被 CloudFront 折叠

但是,如果同时存在针对同一对象的请求,也就是说,如果针对同一对象(具有相同缓存键)的其他请求在 CloudFront 收到第一个请求的响应之前到达边缘站点,则 CloudFront 会在转发该对象之前暂停。向原产地提出额外请求。这种短暂的暂停有助于减少原点上的负载。 CloudFront 将原始请求的响应发送到暂停期间收到的所有请求。这称为请求崩溃。

...

如果您想防止特定对象的请求崩溃,您可以将缓存行为的最小 TTL 设置为 0 并配置源端发送 Cache-Control: private、Cache-Control: no-store、Cache-Control: no -cache,缓存控制:max-age=0,或缓存控制:s-maxage=0。

仅此一点就足以设置 Cache-Control 标头来禁用请求折叠,但我很好奇如果缺少

Cache-Control
标头并且最小 TTL 设置为 0,CloudFront 的默认缓存行为是什么。

amazon-cloudfront cache-control
1个回答
0
投票

您可以在 CloudFront 文档中找到此内容:

[如果]源端未向对象添加

Cache-Control: max-age
指令[并且]最小 TTL = 0 CloudFront 会根据 CloudFront 默认 TTL 的值缓存对象。

该表列出了标头值和设置的不同组合如何影响 CloudFront 的缓存行为。

© www.soinside.com 2019 - 2024. All rights reserved.