Como habilitar o cache do navegador para o meu site? Acabei de colocar cache-control: public em algum lugar no meu cabeçalho como este?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>
Estou usando a versão mais recente do PHP em desenvolvimento na versão mais recente do XAMPP.
http
browser-cache
andrew
fonte
fonte
Respostas:
Para usar o controle de cache em HTML, use a metatag , por exemplo
O valor no campo de conteúdo é definido como um dos quatro valores abaixo.
Algumas informações no
Cache-Control
cabeçalho são as seguintesfonte
<meta>
sempre foi uma maneira terrível e esquisita de especificar o cache.no-store
valor (apesar do próprio documento referenciar a RFC 2068 ) -no-store
impede que o documento seja armazenado / armazenado em cache, em qualquer lugar. Considerandono-cache
que permite que ele seja armazenado, mas deve verificar sempre com o servidor. Navegadores tendem a armazenarno-cache
páginas para habilitar a funcionalidade botão voltar etc.Você pode definir os cabeçalhos no PHP usando:
Observe que os cabeçalhos exatos usados dependerão de suas necessidades (e se você precisar oferecer suporte a HTTP 1.0 e / ou HTTP 1.1 )
fonte
Pragma
eExpires
provavelmente são redundantes para a grande maioria dos navegadores. fastly.com/blog/headers-we-dont-wantComo escrevi, é melhor usar o arquivo
.htaccess
. No entanto, tenha cuidado com o tempo em que você deixa o conteúdo no cache.Usar:
Onde: 604800 = 7 dias
PS: pode ser usado para redefinir qualquer cabeçalho
fonte
A página em http://www.askapache.com/htaccess/apache-speed-cache-control.html sugere o uso de algo como isto:
fonte
cache
eno-cache
).max-age
epublic
não entre em conflito, portanto, a ordem não importa.Header
diretiva, você deve habilitarmod_headers
.a2enmod
ou criar um link simbólico de/etc/apache2/mods-available/headers.load
para/etc/apache2/mods-enabled/headers.load
.Este é o melhor
.htaccess
que usei no meu site atual:fonte
<filesMatch "\.(x?html?|php)$">
para evitar que páginas HTML estáticas sejam armazenadas em cache. O restante das correspondências de arquivo está ok.<filesmatch "\.(eot|woff|otf|ttf|svg)$">
.css
ejs
como privado se tiver cache de proxy. Não encontrei recomendações no seu link sobre isso. A maioria das CDNs recomenda que você armazene esses valores em cache.Para servidor Apache, você deve verificar mod_expires para definir os cabeçalhos Expir e Cache-Control.
Como alternativa, você pode usar a diretiva Header para adicionar o Controle de cache por conta própria:
fonte
A tag de controle de meta cache permite que os editores da Web definam como as páginas devem ser tratadas pelos caches. Eles incluem diretrizes para declarar o que deve ser armazenado em cache, o que pode ser armazenado por caches, modificações do mecanismo de expiração e controles de revalidação e recarregamento.
Os valores permitidos são:
Público - pode ser armazenado em cache em caches públicos compartilhados
Privado - pode ser armazenado em cache somente em cache privado
no-Cache - não pode ser armazenado em cache
no-Store - pode ser armazenado em cache, mas não arquivado
Por favor, tenha cuidado com a distinção entre maiúsculas e minúsculas. Adicione a seguinte metatag na fonte da sua página da web. A diferença na ortografia no final da tag é: "/> = xml ou"> = html.
Fonte-> MetaTags
fonte
A OWASP recomenda o seguinte:
Sempre que possível, assegure-se de que o cabeçalho HTTP de controle de cache esteja definido com no-cache, no-store, must-revalidate, private; e que o cabeçalho HTTP pragma seja definido sem cache.
fonte