Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Cache-Control
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O campo de cabeçalho genéricoCache-Control é usado para especificar diretivas para mecanismos decache tanto em requisições quanto em respostas. Diretivas decache são unidirecionais, o que significa que uma dada diretiva em uma requisição não implica em que a mesma seja dada na resposta.
| Tipo de cabeçalho | General header |
|---|---|
| Forbidden header name | não |
| CORS-safelisted response-header | sim |
In this article
Sintaxe
As diretivas são insensíveis à caixa (case-insensitive) e tem um argumento opcional, que pode usar tanto a sintaxe de token quanto a de cadeias entre aspas. Multiplas diretivas são separadas por virgula.
Diretivas de Cache de requisições
DiretivasCache-Control padrão que podem ser usadas pelo cliente em uma requisição HTTP.
Cache-Control: max-age=<segundos>Cache-Control: max-stale[=<segundos>]Cache-Control: min-fresh=<segundos>Cache-Control: no-cacheCache-Control: no-storeCache-Control: no-transformCache-Control: only-if-cached
Diretivas de Cache de respostas
DiretivasCache-Control padrão que podem ser usadas pelo servidor em uma resposta HTTP.
Cache-Control: must-revalidateCache-Control: no-cacheCache-Control: no-storeCache-Control: no-transformCache-Control: publicCache-Control: privateCache-Control: proxy-revalidateCache-Control: max-age=<segundos>Cache-Control: s-maxage=<segundos>
DiretivasCache-Control Extendidas
DiretivasCache-Control extendidas não são parte do cerne do documento HTTP caching standards. Verifique atabela de compatibilidade para certificar-se do seu suporte.
Cache-Control: immutableCache-Control: stale-while-revalidate=<seconds>Cache-Control: stale-if-error=<seconds>
Diretivas
>Cacheabilidade
publicIndica que a resposta pode ser memorizada por qualquer cache.
privateIndica que a resposta é para um único usuário e não deve ser armazenada por um cache compartilhado. Um cache privativo pode armazenar a resposta.
no-cacheForça o cache a submeter a requisição ao servidor origem para validação antes de liberar a cópia em memória.
only-if-cachedIndica que novos dados não devem ser obtidos. Se este é o caso, o servidor deseja que o cliente obtenha a resposta somente uma vez e memorize (no cache). A partir desse momento o cliente deveria liberar somente a cópia em cache e evitar contactar o servidor origem para ver se há cópias novas.
Expiração
max-age=<segundos>Especifica o tempo máximo em que um recurso será considerado fresco. Ao contrário de
Expires, esta diretiva é relativa à hora da requisição.s-maxage=<segundos>Tem precedência sobre
max-ageou o cabeçalhoExpires, mas só se aplica a caches compartilhados (p.ex., proxies) e é ignorada por caches privados.max-stale[=<segundos>]Indica que o cliente pode aceitar uma resposta que excedeu seu período de expiração. Opcionalmente, você pode informar um valor em segundos, indicando o tempo em que a resposta não será expirada.
min-fresh=<segundos>Indica que o cliente quer uma resposta que será fresca por pelo menos o número de segundos especificado.
stale-while-revalidate=<segundos>ExperimentalIndica que o cliente aceitará uma resposta de caducidade enquanto verifica uma fresca assincronamente embackground. O valor em segundos indica por quanto tempo o cliente espera a resposta de caducidade.
stale-if-error=<segundos>ExperimentalIndica que o cliente espera aceitar uma resposta de caducidade se falhou a verificação de uma fresca. O valor em segundos indica quanto tempo o cliente aceitará a resposta de caducidade após a expiração inicial.
Revalidação e recarga
must-revalidateO cache deve verificar o estado dos recursos caducos antes de usá-los e não usar recursos expirados.
proxy-revalidateMesmo que
must-revalidate, mas só se aplica a caches compartilhados (p.ex., proxies) e é ignorado por um cache privado.immutableIndica que o corpo da resposta não mudará ao longo do tempo. O recurso, se ainda hábil, está inalterado no servidor e portanto o cliente não deverá enviar uma revalidação condicional para ele (p.ex.
If-None-MatchouIf-Modified-Since) a fim de verificar atualiações, mesmo quando o usuário recarrega explicitamente a página. Clientes que não reconhecem esta extensão devem ignorá-la, segundo a especificação HTTP. No Firefox,immutableé honrado somente em transaçõeshttps://. Para mais informações, veja também esteblog post.
Outros
no-storeO cache não deverá armazenar qualquer coisa sobre a requisição do cliente ou a resposta do servidor.
no-transformNenhuma transformação ou conversão deverá ser feita no recurso. Os cabeçalhos Content-Encoding, Content-Range, Content-Type não devem ser modificados por um proxy. Um proxy não transparente deve, por exemplo, converter formatos de imagens a fim de economizar espaço de cache ou reduzir o tráfego no link lento. A diretiva
no-transformnão permite isso.
Exemplos
>Prevenindo o cache
Para desligar o armazenamento em cache, você pode enviar o cabeçalho de resposta seguinte. Alem disso, veja também os cabeçalhosExpires ePragma.
Cache-Control: no-cache, no-store, must-revalidateCache de conteúdo estático
Para os arquivos da aplicação que não mudarão, você pode usar um cache mais agressivo enviando o cabeçalho de resposta abaixo. Isto inclui arquivos estáticos servidos pela aplicação tais como imagens, arquivos CSS e JavaScript, por exemplo. Veja também o cabeçalhoExpires.
Cache-Control: public, max-age=31536000