Http-заголовки – набор служебной информации от сервера к браузеру, оформленной в виде специальных заголовков.

Для правильной настройки кеширования и оптимизации скорости загрузки страниц сайта важно правильно настроить ряд http-заголовков и ответов сервера.

Техническое задание:

Реализовать отдачу обязательных http-заголовков и ответов сервера со следующей информацией:

1. Last-Modified – отдавать реальную дату последнего изменения текущей страницы сайта.

Например,
Last-Modified: Mon, 19 Oct 2015 02:28:12 GMT

2. If-Modified-Since - на запрос с таким заголовком сервер должен возвращать код 200, если в Last-Modified указана дата новее, чем отправлено в запросе If-Modified-Since. Если содержимое с указанной даты не менялось (дата в Last-Modified старее), то сервер должен возвращать код ответа 304.

3. Cache-Control – отдавать для страниц сайта max-age=86400, для всех подключаемых ресурсов (CSS, JS, шрифты, изображения) –  max-age=604800.

Например,
Cache-Control: max-age=86400, must-revalidate

или

Cache-Control: max-age=604800, must-revalidate

4. Expires – отдавать дату устаревания информации: для страниц сайта - текущая + 24 часа, для всех подключаемых ресурсов (CSS, JS, шрифты, изображения) –  текущая + 168 часов.

Например,
Expires: Mon, 19 Oct 2015 02:28:12 GMT

5. ETag – отдавать идентификатор версии запрашиваемого объекта вместе со всеми статическими объектами (html, текст, CSS, JS, шрифты, изображения).

6. Vary – отдавать сообщение браузеру о том, что отдаваемый вариант кода сайта зависит от браузера клиента.

А именно,
Vary: User-Agent

7. Date – отдавать текущую дату загрузки страницы сайта/объекта.