SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
07.03.2025

Desabilitando o Cache para Imagens Dinâmicas em PHP

Resposta Rápida

Para evitar o cache de imagens pelo navegador, você deve adicionar parâmetros de consulta exclusivos à URL da imagem, como um timestamp. Um exemplo de código em JavaScript é mostrado abaixo:

document.querySelectorAll('img.nocache').forEach(img => {
  img.src += '?_=' + Date.now();
});

Esse trecho de código acrescenta um parâmetro único às URLs de todas as imagens com a classe .nocache, forçando o navegador a recarregá-las a cada requisição.

Gerenciamento Eficaz de Cache

O gerenciamento eficaz de cache não se resume apenas a saber como contorná-lo, mas também a entender quando ele deve ser utilizado. Confira o que considerar ao desabilitar o cache de imagens:

1. Usando Cabeçalhos para Controlar o Cache

No seu servidor web, defina o cabeçalho Cache-Control: no-cache para imagens específicas. Isso instruirá o navegador a sempre verificar a atualidade do conteúdo. O método de configuração varia dependendo do tipo do seu servidor: Apache ou Nginx.

2. ETag para Cache Condicional

Ative o ETag para utilizar requisições condicionais: o servidor enviará as imagens apenas se elas tiverem mudado desde o cache do navegador. A configuração do ETag é feita modificando o arquivo .htaccess ou outras configurações do servidor.

3. Tendência do Servidor de Fazer Cache

Verifique as configurações do seu servidor para garantir que ele não está fazendo cache das imagens contra sua vontade. Utilize diretrizes de cache como no-store para contornar o cache no nível do servidor.

4. Variações nos Navegadores sobre Cache

Diferentes navegadores podem interpretar o cache de maneiras diferentes. Por isso, é importante ter uma rede de segurança aplicando uma combinação de vários cabeçalhos. Recomenda-se geralmente começar com Cache-Control: no-cache, Pragma: no-cache e Expires: 0.

Gerenciando Cache com Scripts

Para um controle de cache mais flexível, ferramentas em JavaScript podem ser utilizadas.

5. Atualização Dinâmica de URL

O JavaScript permite que você adicione parâmetros únicos dinamicamente às URLs, como strings aleatórias ou timestamps. Isso altera o atributo src das imagens e ajuda a contornar o cache no lado do servidor.

6. Evitando o Cache do Script de Desvio de Cache

Certifique-se de que o script para quebra de cache em si não seja armazenado em cache. Você pode colocá-lo em um arquivo que não seja armazenável ou incorporá-lo diretamente no HTML.

7. Uso Consciente de Strings de Consulta

Embora uma string de consulta única garanta a atualidade da imagem, o uso excessivo pode levar a quedas de desempenho. Utilize essa abordagem com moderação e apenas para imagens que mudam com frequência.

Visualização

Aqui está uma representação simplificada do gerenciamento de cache de imagens:

🗺️ Comportamento do Cache de Imagens
Imagens Padrão Seguir os caminhos em cache
Imagens Especiais Procurar novos caminhos em cada requisição

Para desabilitar o cache, use o seguinte:

<img src="explorer.jpg" alt="Imagem Especial" class="nocache">

Neste caso, o cabeçalho Cache-Control: no-cache garante que novos caminhos sejam explorados a cada requisição.

Uso Eficaz de Cabeçalhos HTTP

Os cabeçalhos HTTP fornecem maneiras eficazes de gerenciar o cache, embora seu impacto possa variar.

8. Capacidades do Servidor

Certifique-se de que seu servidor esteja configurado corretamente para lidar com cabeçalhos HTTP para um gerenciamento eficaz de cache.

9. Cabeçalhos e Revalidação

Cabeçalhos como Cache-Control, Pragma e Expires configuram o navegador para revalidar o conteúdo no servidor.

10. Navegadores e Cabeçalhos

Lembre-se de que os navegadores podem ignorar cabeçalhos. Portanto, faça testes em diferentes navegadores para verificar a eficácia da sua estratégia.

Recursos Úteis

  1. Cache-Control - HTTP | MDN — Análise detalhada dos cabeçalhos Cache-Control.
  2. ETag - HTTP | MDN — Informações sobre o ETag e sua aplicação no cache.
  3. Estratégias para Quebra do Cache CSS | CSS-Tricks — Visão geral de várias técnicas para quebra de cache.
  4. Tutorial do Servidor HTTP Apache: arquivos .htaccess — Instruções para caching no Apache via arquivos .htaccess.
  5. Um Guia para Cache com NGINX e NGINX Plus — Métodos para gerenciamento de cache no Nginx.
  6. Previna solicitações de rede desnecessárias com o Cache HTTP | web.dev — Guia sobre como prevenir solicitações de rede desnecessárias no contexto de caching, da Google.
  7. Vary - HTTP | MDN — Dicas sobre o uso do cabeçalho Vary em estratégias de caching.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!