如何阻止Cloudfront独立于GET请求缓存HEAD请求?

时间:2019-01-21 03:05:48

标签: amazon-web-services http amazon-cloudfront

Cloudfront正在为没有相应缓存内容的HEAD响应返回缓存命中。

一个正常的例子看起来像这样...

  1. 获取/路径(未命中)
  2. 获取/路径(匹配)
  3. HEAD / path(命中)

这很好,符合我们的期望。这意味着我们可以估算出用户是可能访问缓存还是必须等待原点生成内容。

但是,我们也在观察这一点。

  1. HEAD / path2(未命中)
  2. HEAD / path2(命中)
  3. 获取/ path2(未命中)

这是一个问题,因为我们无法区分以自己的权利缓存的HEAD响应和链接到相应GET响应的HEAD响应。

有没有一种方法可以阻止Cloudfront在HEAD请求上返回未命中内容的缓存命中?

1 个答案:

答案 0 :(得分:0)

在源头禁用HEAD响应上的缓存标头将阻止Cloudfront缓存HEAD响应本身。因此,如果您向CDN发出HEAD请求,它将在高速缓存中寻找匹配的对象,如果存在则返回高速缓存命中。如果缺少内容,它将把HEAD请求转发到您的来源,但不会缓存响应。