Как остановить Cloudfront от кэширования HEAD-запроса независимо от GET-запроса? - PullRequest
0 голосов
/ 21 января 2019

Cloudfront возвращает обращения к кешу для ответов HEAD, которые не имеют соответствующего кэшированного содержимого.

Обычный пример выглядит следующим образом ...

  1. GET / path (miss)
  2. GET / путь (попадание)
  3. HEAD / путь (попадание)

Это хорошо, и мы ожидали.Это означает, что мы можем оценить, может ли пользователь получить доступ к кешу или ему придется ждать, пока контент не будет сгенерирован источником.

Однако мы также наблюдаем это.

  1. HEAD / path2 (miss)
  2. HEAD / path2 (hit)
  3. GET / path2 (miss)

Что является проблемой, потому что мы не можемпровести различие между ответами HEAD, которые были кэшированы сами по себе, и ответами HEAD, которые связаны с соответствующими ответами GET.

Есть ли способ, с помощью которого мы не позволяем Cloudfront возвращать попадания в кеш по запросам HEAD для контента, который на самом деле не являетсякэшируются

1 Ответ

0 голосов
/ 21 января 2019

Отключение заголовков кэша в ответах HEAD в вашем источнике предотвратит кеширование Cloudfront самого ответа HEAD.Поэтому, если вы отправите запрос HEAD в CDN, он будет искать соответствующий объект в кеше и вернет попадание в кеш, если оно присутствует.Если содержимое отсутствует, оно будет перенаправлять запрос HEAD вашему источнику, но не будет кэшировать ответ.

...