Чтобы ускорить загрузку web-страниц и сэкономить трафик, можно заставить браузер их кэшировать. Для этого необходимо правильно настроить заголовки ответа со стороны web-сервера.
Для этих целей предусмотрены заголовки Cache-Control, If-None-Match, If-Modified-Since, Last-Modified, ETag и другие. Также существует специальный HTTP-статус ответа
304 Not Modified.Допустим, браузер выполняет GET-запрос страницы chulakov.ru первый раз. Web-сервер формирует и возвращает контент страницы, в ответе отправляет заголовок
Last-Modified: Sat, 13 Jan 2018 13:38:04 GMT, который содержит последнюю дату изменения запрашиваемого содержимого страницы.При повторном просмотре этой страницы браузер включит в запрос заголовок
If-Modified-Since: Sat, 13 Jan 2018 13:38:04 GMT. И если контент запрашиваемой страницы не был изменен после переданной даты, то сервер вернет HTTP-статус 304. Это послужит командой для браузера поднять страницу из кэша.Такой подход наиболее эффективен для конечного пользователя, если последний часто посещает одни и те же ресурсы, а информация на этих ресурсах меняется редко.
Кэширование контента web-страниц применимо к HTTP-запросам, не меняющим данные на сервере. Например, к GET-запросам.