Quando as solicitações/respostas HTTP são armazenadas em cache?
O AEM as a Cloud Service CDN armazena em cache somente respostas HTTP e todos os critérios a seguir devem ser atendidos:
- O status da resposta HTTP é
2xx
ou3xx
- O método de solicitação HTTP é
GET
ouHEAD
- Pelo menos um dos seguintes cabeçalhos de resposta HTTP está presente:
Cache-Control
,Surrogate-Control
ouExpires
- A resposta HTTP pode ser qualquer tipo de conteúdo, incluindo HTML, JSON, CSS, JS e arquivos binários.
Por padrão, as respostas HTTP não armazenadas em cache pelo AEM Dispatcher têm automaticamente todos os cabeçalhos de cache de resposta HTTP removidos para evitar o armazenamento em cache no CDN. Este comportamento pode ser cuidadosamente substituído usando mod_headers
com a diretiva Header always set ...
quando necessário.
O que é armazenado em cache?
O AEM as a Cloud Service CDN armazena em cache o seguinte:
- Corpo da resposta HTTP
- Cabeçalhos de resposta HTTP
Normalmente, uma solicitação/resposta HTTP para um único URL é armazenada em cache como um único objeto. No entanto, a CDN pode lidar com o armazenamento em cache de vários objetos para uma única URL, quando o cabeçalho Vary
é definido na resposta HTTP. Evite especificar Vary
em cabeçalhos cujos valores não tenham um conjunto de valores rigidamente controlado, pois isso pode resultar em muitos erros de cache, reduzindo a taxa de acertos do cache. Para dar suporte ao armazenamento em cache de solicitações variáveis no AEM Dispatcher, revise a documentação de armazenamento em cache de variantes.
Vida útil do cache
O CDN de Publicação do AEM é baseado em TTL (time-to-live), o que significa que a vida do cache é determinada pelos cabeçalhos de resposta HTTP Cache-Control
, Surrogate-Control
ou Expires
. Se os cabeçalhos de cache de resposta HTTP não forem definidos pelo projeto e os critérios de qualificação forem atendidos, o Adobe definirá uma vida de cache padrão de 10 minutos (600 segundos).
Veja como os cabeçalhos de cache influenciam a vida útil do cache CDN:
- O cabeçalho de resposta HTTP
Cache-Control
instrui o navegador da Web e a CDN sobre quanto tempo armazenar a resposta em cache. O valor é em segundos. Por exemplo,Cache-Control: max-age=3600
instrui o navegador da Web a armazenar a resposta em cache por uma hora. Esse valor é ignorado pela CDN se o cabeçalho de resposta HTTPSurrogate-Control
também estiver presente. - O cabeçalho de resposta HTTP
Surrogate-Control
instrui a CDN do AEM sobre quanto tempo armazenar a resposta em cache. O valor é em segundos. Por exemplo,Surrogate-Control: max-age=3600
instrui a CDN a armazenar a resposta em cache por uma hora. - O cabeçalho de resposta HTTP
Expires
instrui o CDN (e o navegador da Web) do AEM sobre por quanto tempo a resposta em cache é válida. O valor é uma data. Por exemplo,Expires: Sat, 16 Sept 2023 09:00:00 EST
instrui o navegador da Web a armazenar a resposta em cache até a data e a hora especificadas.
Use o Cache-Control
para controlar a vida útil do cache quando ele for o mesmo para o navegador e para o CDN. Use Surrogate-Control
quando o navegador da Web deve armazenar a resposta em cache por um tempo diferente do CDN.