Время жизни (TTL)

Mutt

Professional
Messages
1,057
Reputation
7
Reaction score
580
Points
113
Содержание статьи
  • Что такое время жизни
  • Рекомендации по настройке политики TTL
  • Как сети CDN упрощают настройку времени жизни

Что такое время жизни
Время жизни (TTL) - это время, в течение которого объект хранится в системе кэширования, прежде чем он будет удален или обновлен. В контексте CDN TTL обычно относится к кэшированию контента, которое представляет собой процесс хранения копии ресурсов вашего веб-сайта (например, изображений, цен, текста) на прокси- серверах CDN для повышения скорости загрузки страницы и снижения потребления полосы пропускания исходного сервера.

В этом контексте TTL управляет частотой обновления этих копий, в идеале гарантируя, что «устаревшие» версии вашего контента не будут показаны посетителям вашего веб-сайта.

TTL.jpg.webp

Устаревший контент и свежий контент.

Рекомендации по настройке политики TTL
TTL устанавливается через заголовки HTTP, такие как заголовок Cache-Control, и измеряется в секундах. Например, значение "Cache-Control: max-age=30" - это директива для данного ресурса, который должен обновляться каждые 30 секунд до того, как истечет время жизни. И наоборот, директива "max-age=0" указывает, что ресурс вообще не должен кэшироваться.

Время жизни напрямую влияет на время загрузки страницы вашего сайта (т. е. кэшированные данные загружаются быстрее), а также на актуальность контента (т. е. данные, кэшированные слишком долго, могут устареть).

Чтобы посетители видели только последнюю версию вашего веб-сайта, TTL следует устанавливать в соответствии с:

Тип ресурса
При настройке TTL кеша следует учитывать два типа ресурсов: статический и динамический.

Статические файлы (например, файлы изображений, PDF-файлы и т. д.) редко обновляются и, следовательно, обычно имеют более длительный TTL. Например, пул изображений продуктов на сайте электронной торговли представляет собой статический контент. Поскольку они редко обновляются, их можно безопасно кэшировать на длительный период (например, дни или недели). Это делает настройку их TTL предсказуемой и простой в обслуживании.

И наоборот, динамический контент (например, файлы HTML) постоянно обновляется, что усложняет установку точных значений TTL. Например, раздел комментариев под продуктом считается динамическим, поскольку он часто меняется. Поскольку вы не полностью контролируете этот контент и не можете предсказать время его обновления, особенно если у пользователей есть возможность изменять существующие сообщения, кэширование не рекомендуется.

Использование ресурсов
Время жизни кэша ресурса также должно быть скорректировано в зависимости от того, как часто он используется. Например, сайт электронной торговли может каждый день обновлять HTML-файл, отображающий цены на их товары. Поэтому для страниц, включая цены, следует установить TTL, срок действия которого истекает в конце дня, чтобы клиенты видели только самую последнюю информацию.

Как сети CDN упрощают настройку времени жизни
Эффективность настройки времени жизни зависит от вашей способности точно прогнозировать скорость обновления различных ресурсов вашего веб-сайта.

Очевидно, что чем больше движущихся частей вам придется иметь дело, тем сложнее становится эта задача. Вот почему большинство веб-сайтов с десятками или даже сотнями элементов на странице редко могут поддерживать детальную политику TTL.

Использование CDN упрощает процесс, предоставляя удобный способ обновления настроек TTL с панели управления. Это позволяет вам изменять настройки для отдельных ресурсов или целых групп файлов без необходимости вручную возиться с их заголовками HTTP.

Некоторые сети CDN также используют методы машинного обучения для управления политикой всего времени до начала работы, эффективно автоматизируя этот процесс. Примечательно, что это позволяет кэшировать часть динамического содержимого вашего веб-сайта.

Контролируя взаимодействия пользователей на вашем веб-сайте, CDN может отслеживать различия между версиями контента, обслуживаемого разными пользователями. Основываясь на этих различиях, служба может определить, действительно ли определенный объект является динамическим или просто построен с использованием динамического языка (например, PHP), с идентичной копией, обслуживаемой всеми посетителями.

Расширение политики кеширования для включения динамических объектов может существенно повлиять на производительность вашего веб-сайта, часто увеличивая использование кеша на 20% и более. Кроме того, это гарантирует, что пользователи получают точную и актуальную информацию.
 
Top