Используйте заголовок If-Modified-Since, чтобы сократить объем передаваемых данных и ускорить загрузку страниц. Этот заголовок позволяет браузеру или прокси-серверу запросить у сервера только те ресурсы, которые изменялись с указанной даты.
Как работает заголовок If-Modified-Since
Когда клиент запрашивает ресурс с помощью HTTP-запроса, он посылает заголовок If-Modified-Since, содержащий дату последнего получения этого файла. Если сервер обнаружит, что файл с той даты не изменился, он возвращает статус 304 Not Modified без тела файла. В противном случае сервер отвечает с актуальным содержимым и обновленной датой изменения.
Настройка сервера для использования If-Modified-Since
-
На сервере необходимо правильно вести учет даты последнего изменения файла. Например, в Apache используйте директиву
FileInfo
или настройте модульmod_headers
. -
Для nginx установите директиву
add_header Last-Modified
или используйте стандартные механизмы кэширования. -
При использовании серверных языков (PHP, Python и др.) вставляйте в ответ заголовок Last-Modified, что позволяет браузеру сравнить дату изменения и сформировать правильный запрос с If-Modified-Since.
Рекомендации по использованию If-Modified-Since
-
Обновляйте дату изменения файла при его изменении, чтобы клиент мог получить актуальный контент.
-
Устанавливайте точное время до секунды в формате Sun, 06 Nov 1994 08:49:37 GMT.
-
Для динамических страниц настройте механизм, который обновляет дату в заголовке при каждом изменении содержимого.
Практические советы
Обеспечьте корректную работу кэширования
Комбинируйте Last-Modified с заголовком ETag для более точного контроля изменений. Это помогает избежать ситуаций, когда обновления не выявляются по дате.
Проверка и тестирование
Используйте инструменты браузера или cURL для проверки поведения:
curl -i -H "If-Modified-Since: Sun, 06 Nov 1994 08:49:37 GMT" http://example.com/resource
Обратите внимание на статус ответа и наличие тела документа.
Итог
Настраивая заголовок If-Modified-Since правильно и своевременно обновляя соответствующие метки, вы увеличите эффективность кэширования и уменьшите нагрузку на серверы. Это даёт быстрый доступ к актуальному содержимому и снижает трафик.
Оставить ответ