O ambiente Web é caracterizado pelo modelo requisição/resposta através do protocolo HTTP. Sabendo que alguns conteúdos enviados do servidor para o cliente (navegador) são estáticos, ou mudam com pouca frequência, é possível utilizar um mecanismo de cache para evitar requisições repetidas ao mesmo arquivo. Isso é muito útil, por exemplo, para ser aplicado em imagens e folhas de estilos.
De fato, não há garantias de que este conteúdo será de fato guardado pelo navegador do cliente, pois normalmente existem configurações que determinam se o usuário deseja isso e, caso deseja, o quanto de memória estará reservado para isso.
Para incluir os cabeçalhos HTTP em arquivos estáticos (não gerados por PHP), normalmente é possível configurar o servidor HTTP para fazer isso. No servidor Apache, existe a diretiva ExpiresByType, provida pela extensão mod_expires:
ExpiresActive On ExpiresByType image/gif "access plus 1 month 15 days 2 hours" ExpiresByType image/jpeg "access plus 1 month 15 days 2 hours" ExpiresByType image/png "access plus 1 month 15 days 2 hours"
Isso faz com que imagens gif, jpg e png sejam (possivelmente) guardadas em cache do navegador por 1 mês, 15 dias e 2 horas desde o momento de acesso ao arquivo. Para mais detalhes, consulte a documentação.
5 comentários
Ola Rubs, sei que o post e antigo mais me ajudou muito!
Muito obrigado!
Ola, estou desenvolvendo um projeto em Java que possui varia paginas dinamicas, entao preciso desabilitar o cache do apache para essas paginas, porem nao sei em qual arquivo configuro essas diretivas. Saberia me dizer? Valeu!!
Olá, Rafael
A organização dos arquivos de configuração do Apache variam. Normalmente fica em um destes caminhos:
/usr/local/apache/conf/httpd.conf
/etc/httpd.conf
Pode ser que o arquivo principal inclua outros, então encontrando o httpd.conf, veja os includes que ele faz. Pode ter um include de configurações específicas para expires em /usr/local/apache/conf.d/expires por exemplo.
Olá, estou otimizando o meu site para o Google, e preciso que ele "aproveite o cache do navegador"... vc sabe me informar como faço isso? é no index.html ou .htaccess ?
O expires da pra ser usado configurando o servidor http (apache, por exemplo), ou no script (php, por exemplo)
Esses artigos explicam como usar o expires:
https://rubsphp.blogspot.com.br/2012/08/cache-de-arquivos-com-http-expires-via-php.html
https://rubsphp.blogspot.com.br/2010/12/cache-de-arquivos-no-navegador.html
Uma outra técnica é usando etag:
https://rubsphp.blogspot.com.br/2013/03/cache-no-navegador-usando-etag.html
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com