Как включить кэширование браузера для моего сайта? Должен ли я просто поместить контроль кэша: public где-то в моем заголовке, как это?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>
Я использую последнюю версию PHP, разрабатываемую на последней версии XAMPP.
http
browser-cache
Андрей
источник
источник
Ответы:
Чтобы использовать контроль кеша в HTML, вы используете метатег , например
Значение в поле содержимого определяется как одно из четырех значений ниже.
Некоторая информация в
Cache-Control
заголовке выглядит следующим образомисточник
<meta>
всегда был ужасным и ненадежным способом указать кеширование.no-store
значению (несмотря на то, что сам документ ссылается на RFC 2068 ) -no-store
предотвращает сохранение / кэширование документа вообще, где угодно. Принимая во внимание, чтоno-cache
это позволяет хранить, но он должен проверять с сервером каждый раз. Браузеры будут склонны хранитьno-cache
страницы для включения функциональности кнопки «Назад» и т. Д.Вы можете установить заголовки в PHP , используя:
Обратите внимание, что точные используемые заголовки будут зависеть от ваших потребностей (и если вам нужно поддерживать HTTP 1.0 и / или HTTP 1.1 )
источник
Pragma
иExpires
, вероятно, являются избыточными для подавляющего большинства браузеров. fastly.com/blog/headers-we-dont-wantКак я уже писал , лучше всего использовать файл
.htaccess
. Однако остерегайтесь того времени, когда вы оставляете содержимое в кэше.Использование:
Где: 604800 = 7 дней
PS: это может быть использовано для сброса любого заголовка
источник
На странице http://www.askapache.com/htaccess/apache-speed-cache-control.html предлагается использовать что-то вроде этого:
источник
cache
иno-cache
).max-age
иpublic
не конфликтуйте, поэтому порядок не имеет значения.Header
директиву, вы должны включитьmod_headers
.a2enmod
или сделать символическую ссылку из/etc/apache2/mods-available/headers.load
на/etc/apache2/mods-enabled/headers.load
.Это лучшее, что
.htaccess
я использовал на моем настоящем сайте:источник
<filesMatch "\.(x?html?|php)$">
чтобы избежать кэширования статических HTML-страниц. Остальные соответствия файлов в порядке.<filesmatch "\.(eot|woff|otf|ttf|svg)$">
.css
иjs
в приватное состояние, если у вас есть прокси-кэширование. Я не могу найти никаких рекомендаций в вашей ссылке по этому поводу. Большинство CDN рекомендует вам кэшировать эти значения.Для сервера Apache вы должны проверить mod_expires для установки Expires и заголовков Cache-Control.
В качестве альтернативы вы можете использовать директиву Header, чтобы добавить Cache-Control самостоятельно:
источник
Тег управления мета-кешем позволяет веб-издателям определять, как страницы должны обрабатываться кешами. Они включают в себя директивы для объявления того, что должно быть кешировано, что может храниться в кешах, модификаций механизма истечения срока действия, а также управления повторной проверкой и перезагрузкой.
Допустимые значения:
Общедоступный - может кэшироваться в общедоступных общих кэшах.
Частный - может кэшироваться только в частном кеше
no-Cache - может не кэшироваться
no-Store - может кэшироваться, но не архивироваться
Пожалуйста, будьте осторожны с чувствительностью к регистру. Добавьте следующий метатег в источник вашей веб-страницы. Разница в написании в конце тега заключается в том, что вы используете "/> = xml или"> = html.
Source-> MetaTags
источник
OWASP рекомендует следующее,
Всегда, когда это возможно, убедитесь, что заголовок HTTP для управления кешем установлен в no-cache, no-store, must-revalidate, private; и что заголовок прагмы HTTP установлен без кэширования.
источник