При посещении сайта его отдельные элементы сохраняются в кеше браузера, откуда их можно прочитать при необходимости. Чтобы эффективно его использовать, мы устанавливаем соответствующий срок действия элемента. Заголовки 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
Интересный сайт: