Pular para o conteúdo principal

Laboratório Técnico: Configure caching

Questões

Questão 1 — Múltipla Escolha

Uma equipe de desenvolvimento utiliza o Azure CDN para distribuir assets estáticos de uma aplicação web global. O time percebe que atualizações nos arquivos demoram para se propagar aos usuários finais, mesmo após o deploy. O engenheiro responsável decide forçar a expiração do cache sem alterar as URLs dos arquivos.

Qual mecanismo deve ser utilizado para atingir esse objetivo diretamente no nível do CDN?

A) Alterar o valor de Cache-Control: max-age no servidor de origem para zero e aguardar a expiração natural
B) Executar um purge (limpeza forçada) do conteúdo em cache nas POPs do CDN
C) Desabilitar temporariamente o endpoint do CDN e reativá-lo após o deploy
D) Configurar uma regra de roteamento que redirecione o tráfego diretamente para a origem


Questão 2 — Cenário Técnico

Um engenheiro configura o Azure Front Door com caching habilitado para uma API REST. Após o deploy, ele nota que respostas de diferentes usuários autenticados estão sendo entregues de forma cruzada, ou seja, usuário A recebe conteúdo cacheado gerado para o usuário B.

O trecho de configuração relevante é:

{
"cacheConfiguration": {
"queryStringCachingBehavior": "IgnoreQueryString",
"dynamicCompression": "Enabled",
"cacheDuration": "1.12:00:00"
}
}

Qual é a causa mais provável desse comportamento?

A) O valor de cacheDuration está muito alto, fazendo com que tokens expirados sejam entregues
B) A opção dynamicCompression força o cache a ignorar os cabeçalhos de resposta da origem
C) O caching está sendo aplicado a conteúdo dinâmico personalizado por usuário, sem diferenciação por identidade na chave de cache
D) O comportamento IgnoreQueryString causa conflito com rotas autenticadas por parâmetro de URL


Questão 3 — Verdadeiro ou Falso

O Azure CDN, quando configurado com a regra Cache-Control: no-store na resposta da origem, ignora essa diretiva e armazena o conteúdo em cache de acordo com a duração configurada nas regras do perfil CDN.

Verdadeiro ou Falso?


Questão 4 — Cenário Técnico

Uma empresa utiliza o Azure Front Door Premium para distribuir uma aplicação que serve tanto conteúdo estático quanto respostas de API dinâmicas. O time deseja que o Front Door faça cache das páginas estáticas, mas nunca armazene as respostas dos endpoints /api/*.

Qual abordagem implementa esse requisito de forma correta e sustentável?

A) Desabilitar o caching globalmente no perfil do Front Door e utilizar cabeçalhos Expires na origem para os assets estáticos
B) Criar regras de roteamento separadas: uma com caching habilitado para os paths estáticos e outra com caching desabilitado para /api/*
C) Configurar o queryStringCachingBehavior como UseQueryString nos endpoints de API para impedir o cache
D) Definir cacheDuration como 00:00:01 para os endpoints dinâmicos, reduzindo o TTL ao mínimo operacional


Questão 5 — Múltipla Escolha

Um arquiteto compara o comportamento de caching entre o Azure CDN Standard da Microsoft e o Azure Front Door para decidir qual usar em um cenário onde é necessário controle granular de chave de cache por cabeçalho HTTP customizado.

Qual afirmação descreve corretamente a diferença de capacidade entre os dois serviços nesse aspecto?

A) Ambos os serviços suportam a criação de chaves de cache baseadas em cabeçalhos HTTP customizados com a mesma granularidade
B) O Azure CDN Standard da Microsoft não suporta customização da chave de cache por cabeçalho HTTP; o Azure Front Door oferece essa capacidade via Regras de Roteamento
C) O Azure Front Door não suporta variação de cache por cabeçalho HTTP; apenas por query string e método HTTP
D) A customização de chave de cache por cabeçalho HTTP está disponível apenas no Azure CDN da Verizon Premium, não no Front Door


Gabarito e Explicações

Gabarito — Questão 1

Resposta: B

O purge é o mecanismo específico para invalidar conteúdo armazenado nas POPs (Points of Presence) do CDN sem depender da expiração natural do TTL. Ele age diretamente sobre o cache distribuído, forçando que a próxima requisição busque o conteúdo atualizado na origem.

A alternativa A descreve uma estratégia válida para novas requisições, mas depende da expiração do cache existente, o que pode levar horas ou dias. Alterar max-age para zero não remove o conteúdo já armazenado nas POPs. As alternativas C e D representam intervenções na infraestrutura de roteamento que não têm efeito direto sobre o conteúdo em cache e introduzem impacto operacional desnecessário.


Gabarito — Questão 2

Resposta: C

O problema central é que o caching está sendo aplicado a respostas personalizadas por usuário sem que a identidade do usuário faça parte da chave de cache. Por padrão, o Azure Front Door constrói a chave de cache com base na URL e, conforme configurado, no comportamento de query string. Se a autenticação é baseada em cookie ou cabeçalho Authorization, esses valores não integram a chave de cache por padrão, fazendo com que respostas de diferentes usuários compartilhem a mesma entrada em cache.

A alternativa A é incorreta porque cacheDuration controla o tempo de vida do cache, não a segregação entre usuários. A alternativa B é incorreta porque dynamicCompression atua na compressão do payload, sem interferir na lógica de chave de cache. A alternativa D é parcialmente plausível, mas o IgnoreQueryString sozinho não causa o vazamento descrito quando a autenticação não depende de query string.


Gabarito — Questão 3

Resposta: Falso

O Azure CDN respeita a diretiva Cache-Control: no-store quando ela é enviada pela origem. Conteúdo marcado com no-store não é armazenado em cache pelas POPs, independentemente das configurações de duração definidas no perfil CDN. A diretiva da origem tem precedência sobre regras de cache do perfil quando o comportamento de cache está configurado como Honor origin ou equivalente.

Esse é um equívoco comum: acreditar que as regras do perfil CDN sempre sobrepõem os cabeçalhos da origem. Na prática, o comportamento depende do modo de cache configurado. Somente quando o modo está definido como Override é que as configurações do perfil ignoram os cabeçalhos da origem.


Gabarito — Questão 4

Resposta: B

O Azure Front Door permite a criação de múltiplas regras de roteamento com correspondência de padrão de path. A abordagem correta é criar uma regra para paths estáticos com caching habilitado e uma regra específica para /api/* com caching explicitamente desabilitado. Esse modelo é sustentável porque o controle é declarativo, centralizado e não depende de comportamento da origem.

A alternativa A é inviável porque desabilitar o caching globalmente elimina o benefício para o conteúdo estático. A alternativa C é um equívoco conceitual: UseQueryString varia a chave de cache por query string, mas não impede o armazenamento das respostas. A alternativa D é tecnicamente incorreta como solução de segurança: um TTL de um segundo ainda permite que respostas sejam cacheadas e entregues, o que pode ser problemático para dados sensíveis ou em tempo real.


Gabarito — Questão 5

Resposta: B

O Azure CDN Standard da Microsoft tem capacidades de customização de chave de cache mais limitadas em comparação ao Azure Front Door. O Front Door, por meio de seu mecanismo de Regras de Roteamento (Rules Engine), permite incluir cabeçalhos HTTP específicos na composição da chave de cache, habilitando variações de resposta por cabeçalho customizado.

A alternativa A é incorreta porque os dois serviços não têm paridade nesse aspecto. A alternativa C inverte a realidade: é exatamente o Front Door que oferece essa capacidade. A alternativa D confunde as camadas de produto: o CDN da Verizon Premium tinha um Rules Engine próprio e mais avançado em versões anteriores, mas a afirmação nega erroneamente a capacidade do Front Door, o que não corresponde à arquitetura atual do serviço.