http请求中的`cache-control:max-age = 0`

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

我有一个问题:假设在每个http请求中都有一个cache-control: max-age=0头,因此每个请求都会一直到原始Web服务器。如果所有请求都是这样的话,这是否意味着CDN不再有用?

http cache-control
2个回答
0
投票

通过将max-age设置为0,您可以立即有效地使您的页面在CDN边缘缓存中到期。因此,您的CDN总是命中您的原点,并按照您的建议使CDN无效。

从您的其他问题中注意到您使用的是Akamai。如果是这样,那么如果您没有直接控制该值,则可以使用Edge-Control标头覆盖您的cache-control,但仍希望能够利用CDN功能。


1
投票

来自其他帖子:由用户代理发送时

我相信shahkalpesh的答案适用于用户代理方。您还可以查看13.2.6消除多个响应的歧义。

如果用户代理发送具有Cache-Control的请求:max-age = 0(也称为“端到端重新验证”),那么沿途的每个缓存将重新验证其缓存条目(例如,使用If-Not-修改了标题)一直到原始服务器。如果回复是304(未修改),则可以使用高速缓存的实体。

另一方面,使用Cache-Control发送请求:no-cache(也称为“端到端重新加载”)不会重新验证,并且服务器在响应时不得使用缓存副本。

这是有道理的,并符合我的结果。当chrome中的缓存未过期时,它会向CDN发送请求,CDN将使用if-modified-since查询此内容,然后为最终用户提供服务。

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