Кэширование с помощью HTTP-заголовков позволяет ускорить загрузку веб-страниц, так как позволяет браузеру сохранять копии файлов (ответов сервера), чтобы не загружать их повторно. 5
Упрощённая схема работы кэширования: 1
- Клиент (браузер или поисковый робот) впервые запрашивает определённую страницу сервера (URL). 1 Изначально кэш браузера чист. 1
- Сервер генерирует контент и в дополнение к нему устанавливает HTTP-заголовки, определяющие поведение браузера в плане возможности что-то закэшировать. 1 Установка заголовков сервером не является обязательной, но их наличие может существенно оптимизировать скорость обмена данными браузера с сайтом. 1
- Браузер, получив контент и соответствующие заголовки, решает, что можно сохранить в своём кэше, а что нет. 1
- При повторном обращении к ресурсам сайта браузер решает, брать ему данные из кэша либо же обращаться к серверу. 1
Некоторые HTTP-заголовки, связанные с кэшированием:
- Cache-control. 4 Содержит инструкции (директивы) для кэширования. 4 Позволяет каждому ресурсу иметь свою политику кэширования. 4
- Expires. 4 Содержит дату или время, когда конкретный объект следует считать устаревшим и нужно обновить из источника. 4
- Age. 4 Указывает, сколько времени в секундах ресурс провёл в кэше. 4
- ETag. 4 Показывает, были ли изменения в контенте. 4 Напоминает серийный номер, который браузер отправляет на сервер, чтобы проверить, изменился ли ресурс. 4
- Last-Modified. 4 Аналогичен ETag, но его подход основан на времени. 4 Включает дату и время, в которое ресурс был последний раз модифицирован. 4
Кэширование — процесс двусторонний, им управляет как клиент (через отправляемые заголовки), так и сервер, который должен быть чувствителен к ним. 1