Ответ 1
Эта новая функция Amazon CloudFront на самом деле чрезвычайно полезна для многих случаев использования, потому что поражение начала работает немного иначе, чем кажется на первый взгляд и не обязательно является проблемой, наоборот; в то время как эта функция была выпущена ранее, все это происходит вместе с недавним выпуском Amazon CloudFront - поддержка динамического содержимого, например. для рассматриваемого вопроса:
Переменная время жизни (TTL). Во многих случаях динамический контент является либо не кэшируемым или кэшируемым в течение очень короткого периода времени, возможно всего несколько секунд. В прошлом минимальный TTL CloudFront составлял 60 минут, поскольку все содержимое считалось статичным. Новый минимальный TTL значение - 0 секунд. Если вы установили TTL для определенного источника в 0, CloudFront будет кэшировать содержимое из этого источника. Тогда сделать запрос GET с заголовком If-Modified-Since, тем самым источник имеет шанс сигнализировать, что CloudFront может продолжать использовать кешированный контент, если он не изменился в начале. [акцент мой]
Другими словами, использование TTL 0 в первую очередь означает, что CloudFront делегирует полномочия для управления кешем в начало координат, то есть сервер происхождения решает, будет ли или нет, и если надолго CloudFront кэширует объекты; обратите внимание, что запрос GET с заголовком If-Modified-Since не обязательно означает, что сам объект извлекается из источника, а источник может (и должен) возвращать код статуса HTTP 304 - не изменен, где применимо:
Указывает, что ресурс не был изменен с момента последнего запроса. [...] Используя это, экономия полосы пропускания и переработка на сервере и клиент, так как только данные заголовка должны быть отправлены и получены в сравнение со всей страницей, перерабатываемой сервер, а затем снова отправляется с использованием большей пропускной способности сервера и клиента. [акцент мой]
Внимательно ознакомьтесь с Марк Ноттингем Учебное пособие по кэшированию для получения подробной информации о механизме и преимуществах управления кешем HTTP, действительно важной и эффективной частью архитектуры HTTP.
Понимание того, как все эти части работают вместе, может быть немного трудным, соответственно, в таблице в разделе "Указание минимального времени, когда CloudFront кэширует объекты для загружаемых распределений в Указание Как длинные объекты остаются в кеше CloudFront Edge Cache (Object Expiration) пытается суммировать эффекты при применении в контексте CloudFront с или без TTL = 0.