Cloudflare adiciona suporte nativo ao header HTTP vary para evitar cache thrashing no edge

6 min
Cloudflare adiciona suporte nativo ao header HTTP vary para evitar cache thrashing no edge

A Cloudflare liberou suporte nativo ao header HTTP Vary nas Cache Rules para todos os planos, com ações de normalização, pass-through e bypass para combater a fragmentação de cache.

A Cloudflare ativou Vary for Images: servir imagens corretas aos navegadores (blog.cloudflare.com)-support/" target="_blank" rel="nofollow noopener">Cloudflare: suporte nativo ao header HTTP Vary (blog.cloudflare.com) nativo ao header HTTP Vary nas Cache Rules para todos os planos, depois de constatar que quase 3 mil origens, numa auditoria de 120 milhões de respostas HTTP, fragmentavam o cache ao variar em quatro ou mais headers.

O que a Cloudflare anunciou sobre o header HTTP vary

A Cloudflare passou a suportar nativamente o header de resposta HTTP Vary em toda a sua rede global de edge, com a funcionalidade disponível dentro das Cache Rules em todos os planos de clientes. A capacidade permite que origens negociem representações, como texto localizado, codificações modernas de imagem ou payloads alternativos, sem que operadores percam o controle sobre a fragmentação do cache.

Historicamente, CDNs intermediárias tratam o header Vary com cautela. Pela semântica padrão do HTTP, o Vary indica a caches downstream que a origem avaliou headers específicos da requisição antes de gerar a resposta. Se o cache respeita o Vary sem transformação, pequenas diferenças sintáticas nos headers do cliente, como espaços em branco, maiúsculas e minúsculas ou ordenações de preferência de idioma, fragmentam um único recurso em dezenas de variantes distintas.

Leia também Cloudflare redesenha cache DNS do 1.1.1.1 em Rust e libera 100 tb de memória

Mas de que tamanho é o problema na prática? Em auditoria empírica de mais de 120 milhões de respostas HTTP em cerca de 50 mil domínios de topo, a Cloudflare descobriu que quase 3 mil origens variavam em quatro ou mais headers de requisição, com casos extremos variando em dezenas de campos distintos. A variância descontrolada causa cache thrashing, colapsando as taxas de hit e elevando a carga na origem.

Como funcionam as três ações das cache rules

Para equilibrar correção semântica e eficiência de cache no edge, a Cloudflare separou a negociação em dois estágios operacionais. A origem continua especificando quais headers influenciam a resposta, enquanto as Cache Rules ditam como o edge processa, normaliza ou ignora os valores desses headers antes de computar a chave da variante.

Ao configurar o tratamento de Vary, operadores definem comportamentos por header ou aplicam políticas de fallback para campos não listados. O motor expõe três ações distintas: normalize, que canoniza headers complexos como Accept e Accept-Language em classes equivalentes padronizadas, eliminando diferenças incidentais do cliente; pass through, que armazena strings exatas e sensíveis a maiúsculas, necessário quando a aplicação depende de correspondência precisa de tokens; e bypass, que pula o cache de edge inteiramente para headers voláteis ou de alta cardinalidade.

{ "expression": "(http.request.uri.path eq \"/api/catalog\")", "action": "set_cache_settings", "action_parameters": { "cache": true, "vary": { "headers": [ { "name": "accept", "action": "normalize" }, { "name": "accept-language", "action": "normalize" } ], "default_action": "pass_through" } } }

A configuração é feita pelo Ruleset Engine ou pelo painel da Cloudflare. Nos bastidores, o edge registra os campos Vary anunciados pela origem junto à chave base de cache, composta por scheme, host e path. Requisições seguintes executam primeiro a busca pela chave base e, se houver variantes, os headers correspondentes são avaliados contra as ações configuradas na Cache Rule.

Por que a resposta do vary muda o jogo na configuração

O product manager Alex Krivit e o engenheiro de sistemas Zaidoon Abd Al Hadi no GitHub (github.com)1" rel="nofollow noopener noreferrer" target="_blank">Zaidoon Abd Al Hadi destacaram que a arquitetura em dois estágios resolve limitações antigas das alternativas manuais. Antes, as equipes precisavam escolher entre desativar o cache, depender de Cloudflare Workers especializados, manter chaves de cache personalizadas e frágeis que antecipavam headers antes de ver a resposta da origem, ou usar extensões especializadas como o Vary for Images.

A diferença central é o momento do gatilho. Chaves de cache personalizadas avaliam regras antecipadamente em toda requisição, aplicando-se mesmo quando a origem retorna respostas estáticas e invariantes. Já as regras de Vary nas Cache Rules disparam dinamicamente apenas quando a origem inclui o header Vary, evitando expansão desnecessária do espaço de chaves para respostas sem variação.

Qual o risco de ligar tudo sem critério? Segundo a documentação oficial do recurso, operadores precisam avaliar a cardinalidade da chave de cache antes de ativar pass-through total em headers de alta entropia. Headers com tokens arbitrários ou identificadores de sessão fazem cada string distinta criar uma entrada isolada no edge, reduzindo o tempo de vida do cache e aumentando o churn de evicção.

Na avaliação do Mercado de TI, o movimento indica uma maturação das CDNs em direção a caches semânticos: em vez de tratar o Vary como problema a evitar, a Cloudflare o transforma em política configurável por header. Para times de platform engineering com aplicações multilíngue ou negociação de conteúdo via API, o recurso elimina uma classe inteira de workarounds com Workers. A empresa já havia demonstrado foco semelhante em eficiência ao redesenhar o cache DNS do 1.1.1.1 em Rust e liberar 100 TB de memória.

Info: o suporte a Vary nas Cache Rules está ativo para todas as zonas Free, Pro, Business e Enterprise da Cloudflare, sem custo adicional anunciado.

Atenção: habilitar pass-through em headers com tokens de sessão cria uma entrada de cache por cliente, derrubando o hit ratio. Prefira normalize ou bypass para campos voláteis.

Dica: comece com normalize em Accept e Accept-Language e pass_through como ação padrão; monitore o hit ratio por uma semana antes de endurecer a política.

O próximo passo natural é observar se outras CDNs adotam modelos semelhantes de negociação em dois estágios. Para quem opera aplicações com negociação de conteúdo no Brasil, a configuração fica disponível pelo painel ou pelo Ruleset Engine, e a tendência é que o tema ganhe relevância em discussões de platform engineering e desempenho de APIs.

Origem anuncia as dependências com headers padrão

Ações de tratamento do Vary nas Cache Rules da Cloudflare
AçãoComportamentoQuando usar
normalizeCanoniza headers como Accept e Accept-Language em classes equivalentesNegociação de conteúdo e idioma
pass throughArmazena strings exatas, sensíveis a maiúsculasTokens que exigem correspondência precisa
bypassIgnora o cache de edge para a requisiçãoHeaders voláteis ou de alta cardinalidade

Arraste para o lado para ver toda a tabela.

Um servidor de origem que atende endpoints com múltiplas representações anuncia suas dependências dinâmicas usando headers padrão: Vary: Accept, Accept-Language, junto com Cache-Control: public, max-age=3600. A partir desse anúncio, o edge indexa cada nova resposta no pool de variantes quando nenhuma variante em cache corresponde aos critérios normalizados; caso contrário, a requisição segue para a origem.

D

· Editor-chefe

Especialista em tecnologia, criador de conteúdo e fundador do portal Mercado de TI e Casa do Dev. Analiso tendências de mercado, Inteligência Artificial e carreira, entregando informações precisas, tr...

LinkedIn Site

COMPARTILHAR