Поэтому я отправляю заголовок в php для кэширования моей страницы (это также интегрируется в наш «CDN» (contendo / akamai)). Я всегда использую этот заголовок прагмы: кеш, я видел, что различные примеры используют его; однако я только что проверил скрипач, чтобы проверить трафик для этого .net-приложения, которое мы разработали, и он говорит:
Legacy Pragma Header is present: cache !! Warning IE supports only an EXACT match of "Pragma: no-cache". IE will ignore the Pragma header if any other values are present. ...
Полагаю, все в порядке. Остальная часть ответа кажется прекрасной и моей спецификации. Вот мой код:
function headers_for_page_cache($cache_length=600){ $cache_expire_date = gmdate("D, d MYH:i:s", time() + $cache_length); header("Expires: $cache_expire_date"); header("Pragma: cache"); header("Cache-Control: max-age=$cache_length"); header("User-Cache-Control: max-age=$cache_length"); }
Вопрос в том, имеет ли это значение? Что делает заголовок прагмы? Нужно ли мне это? Я проверил спецификацию спецификации заголовка HTTP и сказал, что она специфична для реализации, и единственная Pragma, которая применяется, – «Pragma: no-cache».
Это лучший выбор заголовков для кеширования в течение определенного времени?
В очень упрощенной форме Pragma:no-cache or Pragma:cache
теперь являются «почти» устаревшими способами передачи инструкций кэширования для реализации клиентов, в частности, броузеров и прокси. То, как клиентская реализация реагирует на заголовки Pragma, различается, поэтому спецификация говорит о специфике реализации.
Более современный способ Cache-control
– это то, на что вы можете безопасно зависеть, поскольку почти все реализации клиента следуют за ним жестко.
Кроме того, если у вас есть и Cache-control
и Pragma
установленные для одной и той же команды, скажем, кеширование, тогда Cache-control
имеет приоритет.
Это отличная статья обо всем, что связано с кешированием, и я думаю, что это очень интересно и полезно читать: http://www.mnot.net/cache_docs/