Configure o Cache-Control com um max-age explícito e um escopo: public para cache compartilhado em CDN, private para dados por usuário. Adicione stale-while-revalidate para os clientes servirem dados um pouco antigos enquanto atualizam em segundo plano. Inclua um ETag ou Last-Modified para a revalidação ser um 304 barato em vez do corpo inteiro. Para qualquer coisa específica de usuário, configure o Vary em Authorization ou Cookie para os caches nunca cruzarem os fios entre contas.
Por que os entrevistadores perguntam isso
Cache é onde desenvolvedores full stack ou economizam dinheiro de verdade ou vazam dados de outras pessoas, então o entrevistador está sondando tanto o instinto de performance quanto o de segurança. Ele quer ver que você conhece a diferença entre caches de navegador, de CDN e de origem, que você consegue nomear os headers em vez de gesticular sobre eles, e que você pensa de imediato no modo de falha de dados privados sem ser cutucado.
Como estruturar sua resposta
- Cite o header que define a política e as diretivas principais dele.
- Explique a revalidação com ETag e a resposta 304.
- Cubra o caso de dado privado e o Vary.
- Mencione como você invalida quando os dados mudam.
Exemplo de resposta
A primeira pergunta que eu faço é quem pode guardar esta resposta. Se ela é a mesma para todo mundo, public com um max-age de verdade deixa a CDN absorver o tráfego e a origem quase não vê nada. Se é por conta, tem que ser private, e eu configuro o Vary em Authorization para um cache compartilhado não conseguir servir o payload de um usuário para outro. Esse erro é silencioso e catastrófico, então eu checo explicitamente. Depois eu adiciono um ETag, porque um 304 custa algumas centenas de bytes em vez do corpo inteiro, e stale-while-revalidate para um usuário nunca esperar por uma atualização. Para qualquer coisa que precisa estar atual, eu troco para um max-age curto mais revalidação em vez de no-store, já que no-store joga fora o ganho barato. Na última API em que eu trabalhei, mover um endpoint público de preços de no-cache para sessenta segundos public com stale-while-revalidate cortou as requisições à origem em uns 90 por cento, e ninguém notou um minuto de desatualização.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você limparia o cache da CDN quando os dados de base mudam?
- Qual é a diferença entre no-cache e no-store?
- Como você faz cache de assets estáticos com hash de forma diferente das respostas de API?
Mais perguntas para Desenvolvedor Full Stack
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas