Publicación de AEM
AEM El servicio de Publish tiene dos capas principales de almacenamiento en caché, la CDN de AEM as a Cloud Service AEM y la Dispatcher de la. Opcionalmente, se puede colocar una CDN administrada por el cliente delante de la CDN de AEM as a Cloud Service. La CDN de AEM as a Cloud Service proporciona una entrega de contenido perimetral, lo que garantiza que las experiencias se entreguen con baja latencia a usuarios de todo el mundo. AEM Dispatcher AEM proporciona almacenamiento en caché directamente delante de Publish AEM, y se utiliza para mitigar la carga innecesaria en el propio Publish, lo que se utiliza para reducir la carga innecesaria de la aplicación en la que se almacena en caché.
AEM
{align="center"}
La red de distribución de contenido (CDN)
El almacenamiento en caché de CDN de AEM as a Cloud Service está controlado por encabezados de caché de respuesta HTTP y su objetivo es almacenar en caché el contenido para optimizar el equilibrio entre actualización y rendimiento. AEM La CDN se encuentra entre el usuario final y el Dispatcher de la, y se utiliza para almacenar en caché el contenido lo más cerca posible del usuario final, lo que garantiza una experiencia de rendimiento.
AEM
{align="center"}
Configurar cómo la CDN almacena en caché el contenido se limita a establecer encabezados de caché en las respuestas HTTP. AEM Estos encabezados de caché generalmente se establecen en configuraciones de host de Dispatcher AEM usando mod_headers
, pero también se pueden establecer en el código Java™ personalizado que se ejecuta en el propio Publish.
¿Cuándo se almacenan en caché las solicitudes/respuestas HTTP?
AEM as a Cloud Service CDN almacena en caché solo las respuestas HTTP y deben cumplirse todos los criterios siguientes:
- El estado de respuesta HTTP es
2xx
o3xx
- El método de solicitud HTTP es
GET
oHEAD
- Al menos uno de los siguientes encabezados de respuesta HTTP está presente:
Cache-Control
,Surrogate-Control
oExpires
- La respuesta HTTP puede ser cualquier tipo de contenido, incluidos HTML, JSON, CSS, JS y archivos binarios.
AEM De manera predeterminada, las respuestas HTTP no almacenadas en caché por Dispatcher quitan automáticamente cualquier encabezado de caché de respuestas HTTP para evitar el almacenamiento en caché en CDN. Este comportamiento se puede reemplazar cuidadosamente usando mod_headers
con la directiva Header always set ...
cuando sea necesario.
¿Qué se almacena en caché?
AEM as a Cloud Service CDN almacena en caché lo siguiente:
- cuerpo de respuesta HTTP
- Encabezados de respuesta HTTP
Normalmente, una solicitud/respuesta HTTP para una sola URL se almacena en caché como un solo objeto. Sin embargo, la CDN puede administrar el almacenamiento en caché de varios objetos para una sola dirección URL, cuando el encabezado Vary
está establecido en la respuesta HTTP. Evite especificar Vary
en encabezados cuyos valores no tengan un conjunto de valores estrictamente controlados, ya que esto puede provocar muchos errores de caché, lo que reduce la proporción de visitas de caché. AEM Para admitir el almacenamiento en caché de distintas solicitudes en Dispatcher, revise la documentación de almacenamiento en caché de variantes.
Duración de caché cdn-cache-life
AEM La CDN de Publish se basa en TTL (time-to-live), lo que significa que la duración de la caché está determinada por los encabezados de respuesta HTTP Cache-Control
, Surrogate-Control
o Expires
. Si el proyecto no establece los encabezados de almacenamiento en caché de respuestas HTTP y se cumplen los criterios de idoneidad, la Adobe establece una duración predeterminada de caché de 10 minutos (600 segundos).
Así es como los encabezados de caché influyen en la duración de la caché de la CDN:
- El encabezado de respuesta HTTP
Cache-Control
indica al explorador web y a la CDN cuánto tiempo deben almacenar la respuesta en caché. El valor se expresa en segundos. Por ejemplo,Cache-Control: max-age=3600
indica al explorador web que almacene en caché la respuesta durante una hora. CDN ignora este valor si el encabezado de respuesta HTTPSurrogate-Control
también está presente. - AEM El encabezado de respuesta HTTP
Surrogate-Control
indica al CDN de la cuánto tiempo debe almacenar la respuesta en caché. El valor se expresa en segundos. Por ejemplo,Surrogate-Control: max-age=3600
indica a la red de distribución de contenido (CDN) que almacene en caché la respuesta durante una hora. - AEM El encabezado de respuesta HTTP
Expires
indica a la CDN (y al explorador web) de la cuánto tiempo es válida la respuesta almacenada en caché. El valor es una fecha. Por ejemplo,Expires: Sat, 16 Sept 2023 09:00:00 EST
indica al explorador web que almacene en caché la respuesta hasta la fecha y hora especificadas.
Utilice Cache-Control
para controlar la duración de la caché cuando sea la misma tanto para el explorador como para CDN. Utilice Surrogate-Control
cuando el explorador web deba almacenar la respuesta en caché durante un tiempo diferente al de la CDN.
Duración predeterminada de la caché
AEM Si una respuesta HTTP cumple los requisitos para el almacenamiento en caché de Dispatcher de por los calificadores anteriores, los siguientes son los valores predeterminados a menos que haya una configuración personalizada.
Personalizar las reglas de caché
Configurar cómo la CDN almacena en caché el contenido se limita a establecer encabezados de caché en respuestas HTTP. AEM Estos encabezados de caché suelen configurarse en configuraciones de Dispatcher AEM vhost
de la aplicación que utilizan mod_headers
, pero también pueden configurarse en el código Java™ personalizado que se ejecuta en el propio Publish de la aplicación de caché de la aplicación.
Dispatcher de AEM
AEM
{align="center"}
¿Cuándo se almacenan en caché las solicitudes/respuestas HTTP?
Las respuestas HTTP para las solicitudes HTTP correspondientes se almacenan en caché cuando se cumplen los siguientes criterios:
-
El método de solicitud HTTP es
GET
oHEAD
HEAD
solicitudes HTTP solo almacenan en caché los encabezados de respuesta HTTP. No tienen cuerpos de respuesta.
-
El estado de respuesta HTTP es
200
-
La respuesta HTTP NO es para un archivo binario.
-
La ruta de la dirección URL de la solicitud HTTP termina con una extensión, por ejemplo:
.html
,.json
,.css
,.js
, etc. -
AEM La solicitud HTTP no contiene autorización y no está autenticada por los usuarios de la aplicación de la autenticación de.
- Sin embargo, el almacenamiento en caché de las solicitudes autenticadas se puede habilitar globalmente o selectivamente mediante el almacenamiento en caché con permisos confidenciales 3}.
-
La solicitud HTTP no contiene parámetros de consulta.
- Sin embargo, configurar Parámetros de consulta ignorados permite que las solicitudes HTTP con los parámetros de consulta ignorados se almacenen en caché o se proporcionen desde la caché.
-
La ruta de acceso de la solicitud HTTP coincide con una regla de permiso de Dispatcher y no coincide con una regla de denegación.
-
AEM La respuesta HTTP no tiene ninguno de los siguientes encabezados de respuesta HTTP establecidos por el Publish de la:
no-cache
no-store
must-revalidate
¿Qué se almacena en caché?
AEM Dispatcher almacena en caché lo siguiente:
-
cuerpo de respuesta HTTP
-
Encabezados de respuesta HTTP especificados en la configuración de encabezados de caché de Dispatcher. AEM Consulte la configuración predeterminada que se envía con el Arquetipo de proyecto de la aplicación.
Cache-Control
Content-Disposition
Content-Type
Expires
Last-Modified
X-Content-Type-Options
Duración de caché
AEM Dispatcher almacena en caché las respuestas HTTP mediante los siguientes métodos:
- Hasta que la invalidación se active mediante mecanismos como la publicación o cancelación de la publicación del contenido.
- TTL (tiempo de vida) cuando se configura explícitamente en la configuración de Dispatcher. AEM Vea la configuración predeterminada en el Tipo de archivo del proyecto de revisando la configuración de
enableTTL
.
Duración predeterminada de la caché
AEM Si una respuesta HTTP cumple los requisitos para el almacenamiento en caché de Dispatcher de por los calificadores anteriores, los siguientes son los valores predeterminados a menos que haya una configuración personalizada.
Personalizar las reglas de caché
AEM La caché de Dispatcher se puede configurar mediante la configuración de Dispatcher, que incluye:
- Qué se almacena en caché
- Qué partes de la caché se invalidan al publicar/cancelar la publicación
- Qué parámetros de consulta de solicitud HTTP se omiten al evaluar la caché
- Qué encabezados de respuesta HTTP se almacenan en caché
- Habilitar o deshabilitar el almacenamiento en caché de TTL
- … y mucho más
Si se usa mod_headers
para establecer encabezados de caché, la configuración de vhost
no afectará al almacenamiento en caché de Dispatcher AEM (basado en TTL), ya que se agregarán a la respuesta HTTP después de que Dispatcher procese la respuesta de forma independiente. Para afectar al almacenamiento en caché de Dispatcher AEM a través de encabezados de respuesta HTTP, se requiere código Java™ personalizado que se ejecute en Publish y que establezca los encabezados de respuesta HTTP adecuados.