Заголовки ETag и Expires, т.е. кеширование элементов страницы в браузере

    53

    При посещении сайта его отдельные элементы сохраняются в кеше браузера, откуда их можно прочитать при необходимости. Чтобы эффективно его использовать, мы устанавливаем соответствующий срок действия элемента. Заголовки ETag и Expires используются для этой цели.

    https ETag
    Заголовок ETag указывает, был ли файл изменен и необходимо ли его снова загружать с сервера. Сначала он анализируется, а когда он включен, другие заголовки пропускаются. Сравнение основано на изменении размера, даты последней модификации или контрольной суммы. Требуется отправить запрос на сервер для внесения изменений. Кроме того, он не всегда работает должным образом, например, если после редактирования изображения его размер не изменился, новое изображение не будет загружено.

    Полное отключение заголовка для всех элементов >>> заголовок будет полностью пропущен. Но в этой ситуации мы должны установить время действия файлов html / xml, используя заголовок Expires.

    Header unset ETag
    FileETag None

    Исключение для выбранных файлов:

    FileETag None
    

    https истекает
    Заголовок Expires указывает, как долго объект обновлялся. Этот метод позволяет использовать кэш браузера для более быстрой загрузки выбранных элементов. Браузер считывает дату истечения срока действия и, если файл не истек, он загружается из кэша браузера. Это ограничивает количество запросов к серверу, мы ограничиваем потребление передачи, и страница загружается быстрее. Мы сами определяем, для каких файлов мы будем устанавливать заголовок expiry. Заголовок, полезный для кэширования статических, редко изменяемых файлов, таких как изображения, значки, стили CSS и т. Д.
    Чтобы браузер рассмотрел этот заголовок, необходимо отключить заголовок ETag для файлов, которые мы хотим кэшировать таким образом. Только при выключении ETag браузер будет основан на заголовках Cache-Control и Expires.

    Мы используем заголовок для добавления кода в .htaccess. Например, следующий код устанавливает время действия для файлов изображений и CSS на 30 дней (число AX … X означает секунды; 2592000 секунд = 30 дней):

    ExpiresActive On
    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/jpg A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/x-icon A2592000
    ExpiresByType text/css A2592000

    Чтобы использовать заголовок для других типов файлов, используйте следующую шпаргалку:

    применение / х-Javascript; текст / html; текст / Richtext; Изображение / SVG + XML; текст / равнина; текст / XSD; текст / XSL; текст / XML; Видео / АФС; видео / AVI; изображение / BMP; Приложение / Java; видео / DivX; применение / MSWord; применение / х-msdownload; изображение / GIF; применение / х-GZIP; х-значок; изображение / JPEG; Приложение / vnd.ms доступа; аудио / миди; видео / QuickTime; аудио / MPEG; видео / mp4; Видео / MPEG; аудио / OGG; применение / PDF; изображение / JPEG; аудио / X-RealAudio; применение / х-ударноволновая-вспышка; применение / х-смола; Аудио / WMA; Применение / застежка-молния

    Более продвинутый код:

    ExpiresActive On
    ExpiresByType text/html A1
    ExpiresByType application/xhtml+xml A1
    # Add Expire header set to 30 days (far future)
    ExpiresByType text/css A2592000
    ExpiresByType text/javascript A2592000
    ExpiresByType application/javascript A2592000
    ExpiresByType application/x-javascript A2592000
    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/jpg A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/x-icon A2592000
    ExpiresByType image/vnd.microsoft.icon A2592000
    ExpiresByType image/svg+xml A2592000
    ExpiresByType text/plain A2592000
    # Add Expire header set to 1 day
    ExpiresByType text/xml A108000
    ExpiresByType application/x-httpsd-php A108000
    ExpiresByType application/x-httpsd-fastphp A108000
    ExpiresByType application/x-httpsd-php-source A108000
    # Add Expire header set to 1 hour
    ExpiresByType application/xml A108000
    ExpiresByType application/atom+xml A108000
    ExpiresByType application/rss+xml A108000

    Пример 1
    Код можно использовать на большинстве страниц. Для выбранных типов файлов (изображения, стили CSS, js) срок действия установлен на 30 дней (ExpiresDefault A2592000), а ETag отключен. Cache-Control заставляет браузер кэшировать (установка значения «no-cache» приводит к игнорированию других заголовков, ответственных за кэширование).

    ExpiresActive on
    ExpiresDefault A2592000
    Header append Cache-Control "public"
    Header unset ETag
    FileETag None
    

    Пример 2
    Простой код для установки заголовка Expires для выбранных типов файлов.

    ExpiresActive On
    ExpiresDefault A604800
    

    Пример 3
    Обширный код. Описание в комментариях.

    # Aktywacja Expires u ustawienie domyslnego czasu na 0
    ExpiresActive On
    ExpiresDefault A0
    # Ustawienie czasu wygasniecia dla plikow medialnych na 1 rok i zmuszenie przegladarki do ich buforowania
    ExpiresDefault A29030400
    Header append Cache-Control "public"
    # Ustawienie czasu wygasniecia plikow graficznych na 1 tydzien i zmuszenie przegladarki do ich buforowania
    ExpiresDefault A604800
    Header append Cache-Control "public"
    # Ustawienie czasu wygasniecia plikow na 2 godziny
    ExpiresDefault A7200
    Header append Cache-Control "proxy-revalidate"
    # Wymuszony zakaz buforowania dla dynamicznych plikow
    ExpiresActive Off
    Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
    

    Пример 4

    # Expire handler
    # Aktywacja expirations.
    ExpiresActive On
    # Cachowanie wszystkich plikow przez tydzien
    ExpiresDefault A604800
    # Cachowanie przez 1 rok
    ExpiresDefault A31449600
    # Cachowanie przez 1 miesiac
    ExpiresDefault A2592000
    # Cachowanie przez 1 miesiac
    ExpiresDefault A604800
    # Cachowanie przez 1 sekunde
    ExpiresDefault A1
    

    Пример 5

    # Turn on Expires and set default expires to 3 month
    ExpiresActive On
    ExpiresDefault A7257600
    ExpiresByType image/x-icon A14515200
    # Set up caching on media files for 1 month
    ExpiresDefault A2419200
    # Set up caching on commonly updated files 1 month
    ExpiresDefault A2419200
    FileETag None
    

    Пример 6

    # Expire images header
    ExpiresActive On
    ExpiresDefault A0
    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/jpg A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/ico A2592000
    ExpiresByType text/css A2592000
    ExpiresByType text/javascript A2592000
    # kill them etags
    FileETag none

    Интересный сайт: Ultimate .htaccess Guide – исчерпывающее руководство по .htaccess