STATUS IS UPWIKI DE OTIMIZAÇÃO DE SITES
20Acelerar
Desempenho e entrega / Acelerar

Guia de cache do navegador para proprietários de sites

Defina regras HTTP claras de cache para que visitas repetidas evitem downloads desnecessários sem prender visitantes em páginas antigas ou em conteúdo personalizado inseguro.

Guia de cache do navegador para proprietários de sites — GUIA VISUAL
LER
7 minutos
FONTES
6
REVALIDAR
2027-03-27
revisado
Revisor de performance web e engenharia de releases
A RESPOSTA CURTA

Comece pela decisão.

Aplique uma regra de cache diferente para cada tipo de URL. Dê uma vida útil longa a arquivos cujo conteúdo nunca muda naquele URL — por exemplo, JavaScript, CSS, fontes e imagens com nome com hash. Para HTML e outras respostas sem versionamento, use uma política que exija validação antes da reutilização quando a atualidade for importante. Publique um novo URL de ativo sempre que o ativo mudar; uma vida útil longa não pode ser confiavelmente desfeita para cópias ainda consideradas fresh.

Comece com cabeçalhos Cache-Control explícitos e depois verifique os cabeçalhos e o comportamento do navegador em um ambiente de staging. Combine respostas que favoreçam validação com ETag e, quando disponível, Last-Modified. Trate respostas personalizadas, de conta, de checkout e sensíveis separadamente das páginas públicas. SIU usa este trabalho como otimização pró-ativa de disponibilidade: reduz trabalho desnecessário na origem e previne defeitos relacionados a cache antes que impactem um site utilizável.

GUIA VISUAL

Veja o trabalho como um sistema.

Use este mapa para conectar as decisões do artigo antes de agir sobre táticas individuais.

SIUAcelerar
01Associe a política ao recurso, não ao servidor
02Use os termos de Cache-Control com precisão
03Versione ativos imutáveis antes de atribuir vida útil longa
04Mantenha o HTML atual por validação, não por longos caches
01

Associe a política ao recurso, não ao servidor

Faça um inventário de URLs representativas antes de alterar cabeçalhos: página inicial, página de conteúdo, application shell, CSS, JavaScript, imagens, fontes, APIs, login, conta, checkout e downloads. Para cada uma, registre se a resposta é pública ou personalizada, se seu URL muda quando os bytes mudam e quão rápido uma correção precisa alcançar visitantes.

Monte uma matriz de políticas a partir desse inventário. Um ativo público endereçado por conteúdo (content-addressed) precisa de regra diferente do HTML em um endereço estável. Respostas sem Cache-Control ainda podem ser armazenadas heurísticamente, então regras explícitas são mais fáceis de testar.

Freshness lifetime

O período em que uma resposta armazenada pode ser reutilizada; max-age fornece esse valor em segundos.

02

Use os termos de Cache-Control com precisão

Cache-Control informa a navegadores e caches compartilhados como armazenar e reutilizar uma resposta. max-age=N permite reutilização enquanto estiver fresh. s-maxage=N define a freshnes em caches compartilhados e sobrescreve max-age lá, mas navegadores ignoram s-maxage. public permite qualquer cache; private permite cache no navegador mas impede armazenamento em cache compartilhado.

no-cache permite armazenamento mas exige validação na origem antes da reutilização. no-store significa que caches não devem armazenar a resposta, mas não é um controle de privacidade completo. Use must-revalidate quando servir conteúdo expirado for inaceitável; uma origem indisponível então pode resultar em 504 em vez de um fallback stale.

Evite no-store abrangente

Ele remove o armazenamento em vez de apenas exigir uma verificação; reserve-o para respostas que realmente não devem ser guardadas.

03

Versione ativos imutáveis antes de atribuir vida útil longa

Um URL de ativo versionado inclui uma impressão digital do conteúdo ou a versão de release, por exemplo app.4f2c.js. Quando os bytes do ativo mudam, publique um URL diferente e atualize a referência no HTML. O cache vê um recurso novo, então visitantes buscam o ativo atualizado sem que uma invalidação precise alcançar cada navegador.

Para uma representação que não mudará durante sua freshness lifetime, Cache-Control: max-age=31536000, immutable é um padrão prático. immutable indica aos clientes que suportam esse atributo para não revalidar condicionalmente enquanto estiver fresh. Não aplique isso nem um max-age de um ano a um arquivo mutável com o mesmo URL. Mantenha ativos fingerprinted anteriores enquanto HTML em cache ainda puder referenciá-los.

HTML é o manifesto

O HTML escolhe os URLs dos ativos, portanto o sequenciamento de release deve manter a geração referenciada.

04

Mantenha o HTML atual por validação, não por longos caches

O HTML geralmente tem um URL estável e voltado ao usuário e muda com conteúdo, referências a ativos, feature flags ou avisos de segurança. Um padrão público conservador para HTML é Cache-Control: no-cache com ETag e Last-Modified quando sua plataforma puder produzi-los corretamente. O navegador armazena o corpo mas faz uma requisição condicional antes de reutilizar; uma resposta inalterada pode retornar 304 Not Modified sem corpo.

ETag identifica uma versão do recurso. Em uma resposta stale, o navegador pode enviá-la em If-None-Match; se corresponder, o servidor responde 304, caso contrário envia a nova representação. A orientação de RFC prefere ambos ETag e Last-Modified em uma resposta 200 quando possível. no-cache não garante validação nas navegações Back ou Forward porque o navegador pode restaurar um snapshot do histórico de sessão.

Qualidade do validador

Um ETag deve mudar quando a representação muda; teste-o entre origens e implantações.

05

Separe entrega pública de respostas personalizadas e sensíveis

Um cache compartilhado, como um CDN, pode reutilizar uma resposta para múltiplos usuários. Não permita que ele reutilize HTML ou dados de API específicos de conta entre usuários. Para conteúdo personalizado que pode viver no navegador, private, no-cache é um ponto de partida sensato: impede armazenamento compartilhado e exige validação. Um cabeçalho Set-Cookie sozinho não impede o cache.

Para respostas que não devem ser armazenadas, use no-store e revise o código da aplicação, regras do CDN, service workers, armazenamento do navegador, logs e páginas de erro. Cabeçalhos sozinhos não são um programa de privacidade, conformidade ou segurança de pagamento. Tenha revisores qualificados de segurança, privacidade e pagamentos avaliando fluxos sensíveis e requisitos aplicáveis.

Mudanças de autorização

Teste login, logout, troca de conta e mudanças de permissão com caches de navegador e CDN aquecidos.

06

Implemente mudanças de cache como um release reversível

Capture cabeçalhos base e comportamento de corpo para requisições uncached e repetidas. Em staging, implante ativos versionados primeiro, depois o HTML que os referencia, e teste HTML antigo em cache contra a nova origem. Verifique caminhos direto-origem e CDN se ambos existirem. Os cabeçalhos no painel Network do DevTools devem mostrar a política pretendida e o comportamento em requisições repetidas.

Mantenha um manifesto de release com URLs de ativos, regras de cabeçalho e versão de configuração. Se um release combinar arquivos cliente incompatíveis, restaure o HTML compatível e o comportamento da aplicação, mas não sobrescreva um arquivo fingerprinted publicado. Aponte o HTML para a geração conhecida como boa e mantenha ambas as gerações enquanto HTML em cache puder solicitá-las. Uma limpeza (purge) em cache compartilhado não pode forçar navegadores a descartar uma resposta fresh.

Remediação proativa

Transforme falhas nos testes de cabeçalho, 404s de ativos e incompatibilidades de versão em itens a incluir no checklist do próximo release.

AÇÃO / VERIFICAR

Seu guia prático de tarefas.

  1. 01

    Inventarie classes de resposta

    Classifique URLs de amostra como públicas ou personalizadas, mutáveis ou versionadas.

    VERIFICAR: Inclui HTML, ativos, APIs, autenticação, conta, checkout e erros.
  2. 02

    Capture cabeçalhos atuais

    Registre Cache-Control, ETag, Last-Modified, Age, Vary e status na origem e no CDN.

    VERIFICAR: Existe um snapshot pré-mudança para cada amostra.
  3. 03

    Fingerprint em ativos mutáveis

    Faça a build publicar um novo URL de ativo quando seus bytes mudarem.

    VERIFICAR: Um ativo alterado produz um URL alterado e referência no HTML.
  4. 04

    Defina políticas explícitas

    Use regras de longa duração apenas para URLs versionados e imutáveis; use políticas que favoreçam validação para URLs estáveis.

    VERIFICAR: Testes de cabeçalho correspondem à política pretendida.
  5. 05

    Teste a validação

    Verifique que um documento inalterado retorna 304 após uma requisição condicional e que um documento alterado retorna 200 com um novo ETag.

    VERIFICAR: Traces em staging mostram ambos os caminhos.
  6. 06

    Exercite limites de privacidade

    Teste dois contas, sign-out, mudanças de papel e rotas sensíveis com caches aquecidos.

    VERIFICAR: Nenhuma resposta personalizada cruza entre usuários.
  7. 07

    Comprove compatibilidade de release

    Carregue HTML anterior em cache após o próximo release.

    VERIFICAR: HTML anterior e atual carregam seus ativos referenciados sem 404s ou erros de script.
  8. 08

    Documente o rollback

    Registre a geração boa, versão de cabeçalho, responsável e período de retenção de ativos antigos.

    VERIFICAR: Um ensaio não-produtivo restaura a geração conhecida como boa sem editar um URL imutável.
TÓPICOS DE DISCUSSÃO

Compare as compensações, não dados privados.

Use essas sugestões com sua equipe ou comunidade de proprietários de sites. Compartilhe métodos e aprendizados, mas nunca cole credenciais, registros de clientes ou detalhes de infraestrutura não públicos.

  1. 01

    Quais classes de URL no seu site são mais difíceis de classificar como públicas, personalizadas, imutáveis ou frequentemente mutantes, e como você está documentando a decisão?

  2. 02

    Qual teste de sequenciamento de release tem sido mais útil para detectar uma incompatibilidade entre HTML antigo e ativos novos antes que um visitante a encontre?

  3. 03

    Onde as regras do seu CDN, aplicação e cache do navegador se sobrepõem, e quem é responsável por verificar que o comportamento combinado corresponde à política pretendida?

RECURSOS POPULARES / AUTORITATIVOS

Abra o material de origem.

IETFRFC 9111: HTTP Caching ↗

Explica freshness, validação, diretivas de cache, invalidação e limites sobre informações sensíveis.

Revisado 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

Define caching immutable, seu escopo e considerações sobre corrupção.

Revisado 2026-09-27
MDN Web DocsHTTP caching ↗

Orientação prática sobre validadores, 304s, personalização e busting de cache.

Revisado 2026-09-27
MDN Web DocsCache-Control header ↗

Referência para max-age, s-maxage, no-cache, no-store, private, public e must-revalidate.

Revisado 2026-09-27
MDN Web DocsETag header ↗

Explica entity tags, If-None-Match e validação 304.

Revisado 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Orientação prática sobre URLs versionadas, validadores, políticas e deploys.

Revisado 2026-09-27

Política de fontes. Este artigo usa padrões abertos e documentação técnica de primeira parte. Evita alegações de performance não suportadas e separa regras HTTP de configurações específicas de plataforma.

ESCLARECIMENTOS RÁPIDOS

Perguntas comuns.

no-cache significa que o navegador não pode armazenar a página?

Não. no-cache permite armazenamento mas exige validação bem-sucedida junto à origem antes da reutilização. Use no-store apenas quando a resposta não deva ser armazenada, reconhecendo que no-store sozinho não é uma salvaguarda completa de privacidade.

Todo arquivo estático deve ter vida útil de cache de um ano?

Não. max-age de um ano é apropriado somente quando os bytes do URL não mudarão nesse período, normalmente porque o URL é fingerprinted ou versionado. Arquivos mutáveis com o mesmo URL precisam de política mais curta ou que favoreça validação.

Uma purge no CDN pode consertar um erro de cache no navegador?

Ela pode remover uma cópia do cache compartilhado gerenciado, mas não pode forçar cada navegador a descartar uma resposta fresh. Publique um novo URL versionado de ativo e atualize referências no HTML; então use o plano de rollback para restaurar uma geração compatível se necessário.

Status Is UP Editorial Team · Uptime Enablement Editors

Revisado por Revisor de performance web e engenharia de releases. Publicado 2026-09-27; atualizado 2026-09-30.