Entorno

AEM Dispatcher 4.2.3

Pregunta

¿Qué peticiones y respuestas HTTP almacena el AEM Dispatcher?

Respuesta

La documentación cubre los escenarios más importantes que afectan a la capacidad de caché de las solicitudes y respuestas que pasan por el módulo AEM Dispatcher. No se cubren todas las reglas de caché.

Reglas de solicitud y almacenamiento en caché HTTP:

Para que una solicitud HTTP la pueda almacenar en caché Dispatcher, debe cumplir las siguientes reglas.

1. La URL es absoluta (no comienza con . o ...), tiene una extensión de archivo y el nombre de archivo en la url funciona como un archivo en el sistema de archivos.

Mensajes de registro relacionados

URI not canonical: %s.
Unable to map URI to file: %s.
cache file path too long
temporary file path too long
request URL has no extension

Ejemplos:

/content/test no almacenado
/content/test.html en caché

2. No tiene barras oblicuas después de la primera extensión de archivo.

Mensajes de registro relacionados:

request URL has trailing slash

Ejemplos:

/content/test.html/ no almacenado
/content/test.html/foo.jpg no almacenado
/content/test.html en caché

3. Utiliza el método HTTP GET o HEAD.

Mensajes de registro relacionados

request method is neither GET nor HEAD

Ejemplos:

HEAD /content/test.html HTTP/1.1 en caché
GET /content/dam/test.jpg HTTP/1.1 no almacenado
POST /content/test.html HTTP/1.1 no almacenado

4. La solicitud es denegada por /cache => /rules definidos en la configuración de granja de .any de Dispatcher.

Mensajes de registro relacionados

URI not in cache rules: %s
request URL not in cache rules

Ejemplos:

Farm tiene /cache => /rules y se recibe una petición para /content/test.html

/cache

{

  ...

  /rules

  {

    /0001 {

      tipo "negar"

      glob "*"

  }

}

no almacenado

Farm tiene /cache => /rules y se recibe una petición para /content/test.html

/cache

{

  ...

  /rules

  {

    /0001 {

type "allow"

      glob "*"

  }

}

en caché

5. La solicitud HTTP no contiene un encabezado de Autorización, o lo contiene, pero /allowAuthorized está configurado en 1 en la configuración de farm.

Mensajes de registro relacionados:

request contains authorization

Ejemplos:

Solicitud HTTP:

GET /content/test.html HTTP/1.1
Autorización: Básico YWxhZGRpbjpvcGVuc2VzYW1l

dispatcher.any farm /cache => /allowAuthorized configuration:

/cache {
  /allowAuthorized "0" }

no almacenado

Solicitud HTTP:

GET /content/test.html HTTP/1.1
Autorización: Básico YWxhZGRpbjpvcGVuc2VzYW1l

dispatcher.any farm /cache => /allowAuthorized configuration:

/cache {
  /allowAuthorized "1" }

en caché

6. La solicitud HTTP contiene una cookie de inicio de sesión o de autorización en el encabezado de la cookie o contiene una (o ambas) de esas cookies y /allowAuthorized está configurado a 1 en la configuración de farm.

Mensajes de registro relacionados

request contains authorization

Ejemplos:

Mensaje de registro relacionado:

Ejemplos:

Solicitud HTTP:

GET /content/test.html HTTP/1.1
Cookie: login-token=...

dispatcher.any farm /cache => /allowAuthorized configuration:

/cache {
  /allowAuthorized "0" }

no almacenado

Solicitud HTTP:

GET /content/test.html HTTP/1.1
Cookie: authorization=YWxhZGRpbjpvcGVuc2VzYW1l

dispatcher.any farm /cache => /allowAuthorized configuration:

/cache {
  /allowAuthorized "0" }

no almacenado

Solicitud HTTP:

GET /content/test.html HTTP/1.1
Cookie: login-token=...

dispatcher.any farm /cache => /allowAuthorized configuration:

/cache {
/allowAuthorized "1"
}

en caché

7. Hay un parámetro querystring en la URL y el parámetro puede ser ignorado a través de la configuración de farm /ignoreUrlParams.

Mensajes de registro relacionados

request contains a query string

Ejemplos:

Solicitud HTTP:

GET /content/test.html?test=1 HTTP/1.1

Configuración Farm /cache:

/ignoreUrlParams {
/0001 { /type "allow" /glob "*" }
}

en caché

Solicitud HTTP:

GET /content/test.html?test=1 HTTP/1.1

Configuración Farm /cache:

/ignoreUrlParams {
/0001 { /type "deny" /glob "*" }
/0001 { /type "allow" /glob "test" }
}

en caché

Solicitud HTTP:

GET /content/test.html?test=1 HTTP/1.1

dispatcher.any farm /cache => /allowAuthorized configuration:

/ignoreUrlParams {
/0001 { /type "deny" /glob "*" }
/0001 { /type "allow" /glob "q" }
}

no almacenado

Reglas de respuesta y almacenamiento en caché HTTP:

La respuesta HTTP devuelta por AEM se puede almacenar en caché si se cumplen los siguientes criterios.

1. El dispatcher puede enviar y recibir una respuesta de 200 OK desde uno de los "renders" definidos.

Nota:

Si no hay ningún /timeout en los /renders o está en 0 entonces esperaría para siempre una conexión a la instancia AEM incluso si la instancia está caída.

Mensajes de registro relacionados

Unable to send request to remote server.
Unable to receive response from remote server.
Remote server returned: %s
No backend available.

Ejemplos:

Solicitud HTTP:

200 OK

en caché

Solicitud HTTP:

404 Página no encontrada

no almacenado

2. Ninguno de estos encabezados de respuesta está presente en la respuesta:

  • Dispatcher: no-cache
  • Control de caché: sin caché
  • Pragma: sin caché

Mensaje de registro relacionado:

Backend forbids caching: %s, sent: %s"
response contains no_cache

Ejemplos:

Respuesta HTTP:

200 OK
Dispatcher: no-cache

no almacenado

Respuesta HTTP:

200 OK
Control-caché: no-cache

no almacenado

Respuesta HTTP:

200 OK
Pragma: no-cache

no almacenado

Respuesta HTTP:

200 OK

en caché

3. El valor de longitud de contenido es mayor que cero bytes.

Mensaje de registro relacionado:

response content length is zero

Ejemplos:

Respuesta HTTP:

200 OK
Contenido-Longitud: 0

no almacenado

Respuesta HTTP:

200 OK
Contenido-Longitud: 3120

en caché

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea