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