AEM ¿Qué solicitudes almacena en caché el Dispatcher?
AEM Este artículo determina por qué y qué solicitudes/respuestas HTTP no son almacenadas en caché por el Dispatcher de.
Descripción description
Entorno
AEM Dispatcher 4.3.3
Problema
AEM 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 de Dispatcher de la. No se cubren todas las reglas de caché.
Resolución resolution
Reglas de solicitud y almacenamiento en caché HTTP
Para que Dispatcher pueda almacenar en caché una solicitud HTTP, debe cumplir las siguientes reglas:
-
La dirección URL es absoluta (no funciona con ). o …), tiene una extensión de archivo y el nombre de archivo de la URL funciona como un archivo en el sistema de archivos.
Mensajes de registro relacionados:
code language-none 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:
table 0-row-2 1-row-2 /content/test
not cached
/content/test.html
cached
-
No tiene barras diagonales después de la primera extensión de archivo.
Mensajes de registro relacionados:
code language-none request URL has trailing slash
Ejemplos:
table 0-row-2 1-row-2 2-row-2 /content/test.html/
not cached
/content/test.html/foo.jpg
not cached
/content/test.html
cached
-
Utiliza el método de HEAD o GET HTTP.
Mensajes de registro relacionados:
code language-none request method is neither GET nor HEAD
Ejemplos:
table 0-row-2 1-row-2 2-row-2 HEAD /content/test.html HTTP/1.1
cached
GET /content/dam/test.jpg HTTP/1.1
not cached
POST /content/test.html HTTP/1.1
not cached
-
La solicitud es denegada por /CACHE =
>
/RULES definida en Dispatcher. CUALQUIER CONFIGURACIÓN DE GRANJA.Mensajes de registro relacionados:
code language-none URI not in cache rules: %s request URL not in cache rules
Ejemplos:
a. No almacenado en caché
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "deny" glob "*" } } }
b. Almacenado en caché
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "allow" glob "*" } } }
-
La solicitud HTTP no contiene un encabezado de autorización o contiene el encabezado, pero /ALLOWAUTHORIZED se establece en 1 en la CONFIGURACIÓN DE GRANJA.
Mensajes de registro relacionados:
code language-none request contains authorization
Ejemplos:
a. No almacenado en caché
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “0” }
b. Almacenado en caché
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
La solicitud HTTP contiene un token de inicio de sesión o una cookie de autorización en el encabezado de la cookie, o bien contiene una o ambas cookies y /ALLOWAUTHORIZED se establece en 1 en la CONFIGURACIÓN DE LA GRANJA.
Mensajes de registro relacionados:
code language-none request contains authorization
Ejemplos:
a. No almacenado en caché
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Cookie: login-token=... dispatcher.any farm /cache = /allowAuthorized configuration: /cache { /allowAuthorized “0” }
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Cookie: authorization= YWxhZGRpbjpvcGVuc2VzYW1l dispatcher.any farm /cache = /allowAuthorized configuration: /cache { /allowAuthorized “0” }
b. Almacenado en caché
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Cookie: login-token=... dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
Hay un parámetro QUERYSTRING en la URL y se permite ignorar el parámetro a través de la CONFIGURACIÓN /IGNOREURLPARAMS de la GRANJA.
Mensajes de registro relacionados:
code language-none request contains a query string
Ejemplos:
a. Almacenado en caché
code language-none HTTP Request: GET /content/test.html?test=1 HTTP/1.1 Farm /cache configuration: /ignoreUrlParams { /0001 { /type “allow” /glob “*” } }
code language-none HTTP Request: GET /content/test.html?test=1 HTTP/1.1 Farm /cache configuration: /ignoreUrlParams { /0001 { /type “deny” /glob “*” } /0001 { /type “allow” /glob “test” } }
b. No almacenado en caché
code language-none HTTP Request: 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” } }
Reglas de almacenamiento en caché y respuesta HTTP:
AEM La respuesta HTTP devuelta desde el repositorio se puede almacenar en caché si se cumplen los siguientes criterios:
-
El despachante puede enviar y recibir una respuesta 200 OK de uno de los "RENDERS" definidos.
AEM Nota: Si no hay /timeout establecido en /renders o está establecido en 0, entonces esperaría para siempre una conexión a la instancia de, incluso si la instancia no está activa.
Mensajes de registro relacionados:
code language-none Unable to send request to remote server. Unable to receive response from remote server. Remote server returned: %s No backend available.
Ejemplos:
table 0-row-2 1-row-2 Solicitud HTTP:
200 OKen caché Solicitud HTTP:
404 Página no encontradano almacenado en caché -
Ninguno de estos encabezados de respuesta está presente en la respuesta:
Dispatcher: no-cache
Cache-control: no-cache
Pragma: no-cache
Mensajes de registro relacionados:
code language-none Backend forbids caching: %s, sent: %s" response contains no_cache
Ejemplos:
table 0-row-2 1-row-2 2-row-2 3-row-2 Respuesta HTTP:
200 OK
Dispatcher: sin cachéno almacenado en caché Respuesta HTTP:
200 OK
Cache-control: sin cachéno almacenado en caché Respuesta HTTP:
200 OK
Pragma: sin cachéno almacenado en caché Respuesta HTTP:
200 OKen caché -
El valor de Content-length es mayor que CERO BYTES.
Mensajes de registro relacionados:code language-none response content length is zero
Ejemplos:
table 0-row-2 1-row-2 Respuesta HTTP:
200 OK
Content-Length: 0no almacenado en caché Respuesta HTTP:
200 OK
Content-Length: 3120en caché