O serviço de Publicação do AEM tem duas camadas principais de armazenamento em cache, o CDN as a Cloud Service do AEM e o Dispatcher do AEM. Opcionalmente, uma CDN gerenciada pelo cliente pode ser colocada na frente da CDN as a Cloud Service do AEM. A CDN as a Cloud Service do AEM fornece entrega de conteúdo de ponta, garantindo que as experiências sejam entregues com baixa latência a usuários em todo o mundo. O AEM Dispatcher fornece armazenamento em cache diretamente na frente do AEM Publish e é usado para atenuar a carga desnecessária no AEM Publish.
O armazenamento em cache do AEM as a Cloud Service é controlado por cabeçalhos de cache de resposta HTTP e tem como objetivo armazenar em cache o conteúdo para otimizar um equilíbrio entre a atualização e o desempenho. O CDN fica entre o usuário final e o Dispatcher do AEM e é usado para armazenar em cache o conteúdo o mais próximo possível do usuário final, garantindo uma experiência com desempenho.
Configurar como o conteúdo do CDN armazena em cache é limitado à configuração de cabeçalhos de cache em respostas HTTP. Esses cabeçalhos de cache normalmente são definidos em configurações de vhost do Dispatcher do AEM usando mod_headers
, mas também pode ser definido no código Java™ personalizado em execução no próprio AEM Publish.
O AEM as a Cloud Service CDN armazena em cache somente respostas HTTP e todos os critérios a seguir devem ser atendidos:
2xx
ou 3xx
GET
ou HEAD
Cache-Control
, Surrogate-Control
ou Expires
Por padrão, as respostas HTTP não são armazenadas em cache pelo Dispatcher AEM remova automaticamente todos os cabeçalhos de cache de resposta HTTP para evitar o armazenamento em cache na CDN. Esse comportamento pode ser cuidadosamente substituído usando mod_headers
com o Header always set ...
diretiva quando necessário.
O CDN as a Cloud Service do AEM armazena em cache o seguinte:
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 um único URL, quando a variável Vary
cabeçalho estiver definido na resposta HTTP. Evitar especificar Vary
nos cabeçalhos cujos valores não têm um conjunto de valores rigorosamente controlado, pois isso pode resultar em muitos erros de cache, reduzindo a taxa de ocorrência do cache. Para oferecer suporte ao armazenamento em cache de solicitações variáveis no AEM Dispatcher, revisar a documentação do armazenamento em cache de variantes.
O AEM Publish CDN é baseado em TTL (time-to-live), o que significa que a vida útil do cache é determinada pelo Cache-Control
, Surrogate-Control
ou Expires
Cabeçalhos de resposta HTTP. Se os cabeçalhos de cache de resposta HTTP não estiverem definidos pelo projeto e a variável critérios de elegibilidade forem atendidas, o Adobe definirá uma vida útil de cache padrão de 10 minutos (600 segundos).
Veja como os cabeçalhos de cache influenciam a vida útil do cache CDN:
Cache-Control
O cabeçalho de resposta HTTP instrui o navegador da Web e o CDN sobre por 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 Surrogate-Control
O cabeçalho de resposta HTTP também está presente.Surrogate-Control
O cabeçalho de resposta HTTP instrui o CDN do AEM sobre por quanto tempo armazenar a resposta em cache. O valor é em segundos. Por exemplo, Surrogate-Control: max-age=3600
instrui o CDN a armazenar a resposta em cache por uma hora.Expires
O cabeçalho de resposta HTTP instrui o CDN do AEM (e o navegador da Web) 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.Uso Cache-Control
para controlar a vida útil do cache quando ela é a mesma para o navegador e o CDN. Uso Surrogate-Control
quando o navegador da web deve armazenar a resposta em cache por uma duração diferente da CDN.
Se uma resposta HTTP se qualificar para cache do Dispatcher do AEM por qualificadores acima, a seguir estão os valores padrão, a menos que a configuração personalizada esteja presente.
Tipo de conteúdo | Vida útil do cache padrão da CDN |
---|---|
HTML/JSON/XML | 5 minutos |
Ativos (imagens, vídeos, documentos e assim por diante) | 10 minutos |
Consultas persistentes (JSON) | 2 horas |
Bibliotecas de clientes (JS/CSS) | 30 dias |
Outro | Não armazenado em cache |
Configuração de como o CDN armazena conteúdo em cache O está limitado à configuração de cabeçalhos de cache em respostas HTTP. Normalmente, esses cabeçalhos de cache são definidos no AEM Dispatcher vhost
configurações usando mod_headers
, mas também pode ser definido no código Java™ personalizado em execução no próprio AEM Publish.
As respostas HTTP para solicitações HTTP correspondentes são armazenadas em cache quando todos os critérios a seguir são atendidos:
O método de solicitação HTTP é GET
ou HEAD
HEAD
As solicitações HTTP armazenam em cache somente os cabeçalhos de resposta HTTP. Eles não têm corpos de resposta.O status da resposta HTTP é 200
A resposta HTTP NÃO é para um arquivo binário.
O caminho do URL da solicitação HTTP termina com uma extensão, por exemplo: .html
, .json
, .css
, .js
, etc.
As solicitações HTTP não contêm autorização e não são autenticadas pelo AEM.
A solicitação HTTP não contém parâmetros de consulta.
Caminho da solicitação HTTP corresponde a uma regra para permitir o Dispatcher e não corresponde a uma regra para negar.
A resposta HTTP não tem nenhum dos seguintes cabeçalhos de resposta HTTP definidos pelo AEM Publish:
no-cache
no-store
must-revalidate
O AEM Dispatcher armazena em cache o seguinte:
Cache-Control
Content-Disposition
Content-Type
Expires
Last-Modified
X-Content-Type-Options
O AEM Dispatcher armazena em cache as respostas HTTP usando as seguintes abordagens:
enableTTL
configuração.Se uma resposta HTTP se qualificar para cache do Dispatcher do AEM por qualificadores acima, a seguir estão os valores padrão, a menos que a configuração personalizada esteja presente.
Tipo de conteúdo | Vida útil do cache padrão da CDN |
---|---|
HTML/JSON/XML | Até a invalidação |
Ativos (imagens, vídeos, documentos e assim por diante) | Nunca |
Consultas persistentes (JSON) | 1 minuto |
Bibliotecas de clientes (JS/CSS) | 30 dias |
Outro | Até a invalidação |
O cache do Dispatcher do AEM pode ser configurado por meio do Configuração do Dispatcher incluindo:
Usar mod_headers
para definir cabeçalhos de cache, vhost
A configuração do não afetará o armazenamento em cache do Dispatcher (com base em TTL), pois eles são adicionados à resposta HTTP depois que o AEM Dispatcher processa a resposta. Para afetar o armazenamento em cache do Dispatcher por meio de cabeçalhos de resposta HTTP, é necessário o código Java™ personalizado em execução em AEM Publish, que define os cabeçalhos de resposta HTTP apropriados.