Estratégias de cache na borda para aplicações React
Use cabeçalhos Cache-Control, Cloudflare KV e R2 para armazenar em cache páginas renderizadas e recursos estáticos na borda.
Estratégias de cache na borda para aplicações React é uma aula grátis de React Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
Cabeçalhos Cache-Control para armazenamento em cache na borda
O cabeçalho de resposta Cache-Control controla por quanto tempo a Cloudflare (e outras CDNs) armazenam suas respostas SSR em cache. As principais diretivas são: max-age (cache do navegador), s-maxage (duração do cache compartilhado da CDN) e stale-while-revalidate (entregar conteúdo desatualizado enquanto ele é revalidado em segundo plano).
s-maxage e max-age
s-maxage é respeitado pelos caches compartilhados (CDNs), enquanto max-age é usado pelos caches dos navegadores. Para páginas SSR, normalmente você quer s-maxage=60 (a CDN armazena em cache por 60 segundos) e max-age=0 (o navegador sempre revalida), para que todos os usuários recebam conteúdo razoavelmente atualizado do cache na borda.
Armazenando páginas SSR em cache com stale-while-revalidate
Adicionar stale-while-revalidate=30 ao cabeçalho Cache-Control informa à Cloudflare que entregue a página armazenada em cache instantaneamente enquanto busca uma versão atualizada em segundo plano. Os usuários sempre recebem uma resposta rápida; o tempo máximo de desatualização é de s-maxage + stale-while-revalidate segundos.
Páginas personalizadas: o cabeçalho Vary
Conteúdo personalizado (com base na sessão do usuário ou na localidade) não deve ser entregue de um cache compartilhado ao usuário errado. O cabeçalho Vary: Cookie informa à Cloudflare que trate cada valor exclusivo de Cookie como uma entrada de cache separada, impedindo que os dados de um usuário sejam entregues a outro usuário.
Ignorando o cache em solicitações autenticadas
Um padrão comum é verificar se há um cookie de sessão no Worker antes de decidir se o cache será usado. Se houver um cookie de sessão, ignore o cache por completo e renderize uma resposta personalizada. Se não houver cookie de sessão, a página é pública e pode ser entregue a partir do cache.
Cloudflare KV: armazenamento de chave-valor na borda
Cloudflare KV é um armazenamento de chave-valor distribuído globalmente que guarda dados perto dos usuários. Você pode armazenar HTML renderizado em KV — armazene a página renderizada como um valor com um TTL, e as solicitações futuras leem de KV na borda em vez de renderizar novamente com React.
Desempenho de leitura e gravação no KV
As leituras do KV são rápidas porque os dados são replicados no PoP de borda que atende à solicitação — a latência típica de leitura é inferior a 5 ms. As gravações no KV, porém, usam consistência eventual: uma gravação em uma região se propaga para todos os PoPs globais em até 60 segundos, o que significa que alguns usuários podem ver dados desatualizados brevemente.
Cloudflare R2: armazenamento de objetos para recursos maiores
Cloudflare R2 é um serviço de armazenamento de objetos compatível com S3 e sem tarifas de saída. Ele é adequado para recursos maiores que não cabem no KV: módulos WASM, imagens OG pré-renderizadas e grandes conjuntos de dados JSON. Os Workers acessam o R2 por meio de vinculações, assim como o KV.
Etiquetas de cache para invalidação granular
A edição Enterprise da Cloudflare oferece etiquetas de cache: você marca uma resposta com Cache-Tag: product-42 e, quando o produto 42 muda, chama a API da Cloudflare para invalidar todas as respostas marcadas com product-42. Isso permite uma invalidação precisa do cache sem invalidá-lo por completo.
Tratamento da invalidação do cache durante a implantação
Quando você implanta uma nova versão do Worker, o HTML armazenado anteriormente pode fazer referência a nomes antigos de arquivos de pacotes JS. Uma estratégia robusta é incluir a versão da implantação nas chaves do cache ou usar nomes de arquivos de pacotes versionados (por meio da geração de hash baseada no conteúdo do Vite), para que o HTML antigo sempre faça referência a arquivos JS válidos e armazenados em cache.
Implementação de cache de HTML baseada em KV
Um Worker que armazena HTML SSR em cache no KV segue este padrão: calcule uma chave de cache a partir da URL (e, opcionalmente, da localidade), verifique se há um resultado no KV e retorne imediatamente o HTML armazenado quando encontrado. Em caso de ausência, renderize com React, armazene o resultado no KV com um TTL e retorne o HTML recém-renderizado.
Modelo de consistência do Cloudflare KV
Que modelo de consistência o Cloudflare KV usa para gravações?
Recapitulação da lição
O armazenamento em cache na borda para aplicações React combina várias estratégias: s-maxage do Cache-Control para armazenar páginas públicas em cache na CDN, Vary: Cookie para impedir que respostas personalizadas sejam compartilhadas, KV para HTML renderizado armazenado na borda e etiquetas de cache para invalidação granular. O modelo de consistência eventual do KV significa que a propagação das gravações leva até 60 segundos — planeje os valores de TTL e sua estratégia de invalidação de acordo.
Perguntas Frequentes
A aula “Estratégias de cache na borda para aplicações React” é grátis?
Sim — o texto completo de “Estratégias de cache na borda para aplicações React” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Estratégias de cache na borda para aplicações React”?
Use cabeçalhos Cache-Control, Cloudflare KV e R2 para armazenar em cache páginas renderizadas e recursos estáticos na borda. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Estratégias de cache na borda para aplicações React”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que é renderização na borda e por que é importante
- React no Cloudflare Workers com Hono
- SSR com transmissão a partir da borda
- Estratégias de cache na borda para aplicações React