Как использовать HTTP заголовок Cache-Control

Как использовать HTTP заголовок Cache-Control

Коллеги всем привет.

В сегодняшней статье мы поговорим о том как включить на вашем сайте HTTP заголовок Cache-Control, и зачем его нужно использовать в своих сайтах.

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

Все эти действия которые я описал вам,  это на сегодняшней день очень дорогое удовольствие, особенно, если к вам на сайт пришел человек из мобильной сети с ограниченным количеством трафика,  для него каждый ненужный сетевой запрос это трата денег. Еще очень важным аргументом почему стоит использовать заголовок Cache-Control это то что ваш сайт будет быстрее загружаться у тех пользователей которые уже не давно посещали ваш сайт, и тем самым будет меньшая нагрузка на ваш веб-сервер.

 

Cache-Control — относится к HTTP заголовкам, этот заголовок указывает что данные которые приходят от сервера нужно кэшировать браузером пользователя, Cache-Control будет кешировать как в клиентские запросы, так и в ответы веб-сервера. Политика Cache-Control включает способ кэширования ресурса, место его кэширования и максимальный возраст до истечения срока действия время жизни данных.

Заголовок Cache-Control разбит на директивы, наиболее распространенные я буду описывать ниже в статье.

 

Пример заголовка Cache-control.

http set cache-control


 

Cache-Control: Max-Age

Директива max-age указывает на максимальное время в течение которого ресурс будет считаться актуальным, определяет в секундах. По истечении срока действия, браузер повторно отправит запрос на сервер, чтобы получить актуальные данные.

К примеру указав заголовок cache-control: max-age=240 означает, что ресурс действителен в течение 240 секунд, после чего браузер отправит запрос повторно, чтобы получить актуальную страницу с данными.

 

Cache-Control: No-Cache

Директива no-cache указывает на необходимость повторно отправить запрос на сервер для валидации страницы, перед тем как использовать кэшированные данные страницы.

 

Cache-Control: No-Store

Директива no-cache указывает браузеру, что данные которые он получает из сервера не кешировать. Такой вариант использования подходит обычно для конфиденциальных данных таких как логин и пароль пользователя и банковских карт.

 

Cache-Control: Public

Директива Public указывает что ответ сервера может быть за кеширован в любом кеше.

 

Cache-Control: Private

Директива Private указывает, что ответ предназначен только для одного пользователя и не должен помещаться в разделяемый кеш. К примеру ответ сервера на страницу, помеченный как частный, может кэшироваться браузером пользователя, но не сетью доставки контента CDN.


 

Чтобы бы нам установить HTTP заголовок Cache-Control на сайте с помощью php, нам нужно воспользоваться специальной функцией которая предназначена для установки HTTP заголовков, и она называется header(). Вам нужно перейти на ту страницу которую вы хотите кешировать и добавить эту функцию в самый верх php файла.

header("Cache-Control: max-age=3600");

http set cache-control

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


 

Если на вашем сайте не используется язык php, а только сам html, то для таких случаев мы можем воспользоваться html тегом meta.

<meta http-equiv="Cache-Control" content="public, max-age=3600" />

http set cache-control

Здесь важный момент заключается в том что заголовок Cache-Control нужно указывать именно в теле тега head, а не где-нибудь в другом месте.


 

В итоги коллеги мы сегодня познакомились с очень важной вещью как HTTP заголовок Cache-Control. В этом заголовке очень много разных директив, но я вам показывал самые распространённые и которые вы 100% будете использовать на своих сайтах. Этот заголовок вообще используется вместе с такими заголовками как Last-Modified и If-Modified-Since, но об этих заголовках я буду рассказывать в других статьях.

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

 

ПОХОЖИЕ СТАТЬИ

PHP - Как убрать пробелы с начала и конца строки
PHP - Как убрать пробелы с начала и конца строки
WEB
Читать далее
PHP - форматирование даты. Функция date().
PHP - форматирование даты. Функция date().
WEB
Читать далее
PHP - Как определить часовой пояс - timezone
PHP - Как определить часовой пояс - timezone
WEB
Читать далее