La documentation couvre les scénarios les plus importants qui affectent la capacité de cache des requêtes et des réponses qui traversent le module AEM Dispatcher. Toutes les règles de cache ne sont pas couvertes.
Pour qu'une requête HTTP puisse être mise en cache par le dispatcher, elle doit respecter les règles suivantes.
1. L'URL est absolue (ne commençant pas par . ou ..), a une extension de fichier et le nom de fichier dans l’URL fonctionne comme un fichier du système de fichiers.
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
request URL has trailing slash
/content/test.html/ | non mis en cache |
/content/test.html/foo.jpg | non mis en cache |
/content/test.html | Mis en mémoire cache |
request method is neither GET nor HEAD
HEAD /content/test.html HTTP/1.1 | Mis en mémoire cache |
GET /content/dam/test.jpg HTTP/1.1 | non mis en cache |
POST /content/test.html HTTP/1.1 | non mis en cache |
4. La requête est refusée par /cache => /rules défini dans la configuration du répartiteur .any de la configuration de la ferme.
URI not in cache rules: %s request URL not in cache rules
La ferme a /cache => /rules et une requête est reçue pour /content/test.html /cache { ... /rules { /0001 { type "deny" glob «*» } } |
non mis en cache |
La ferme a /cache => /rules et une requête est reçue pour /content/test.html /cache { ... /rules { /0001 { type "allow" glob "*" } } |
Mis en mémoire cache |
5. La requête http ne contient pas d'en-tête d'autorisation ou elle contient l'en-tête mais /allowAuthorized est défini sur 1 dans la configuration de la ferme.
request contains authorization
Requête HTTP : GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
non mis en cache |
Requête HTTP : GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
Mis en mémoire cache |
6. La requête HTTP contient un cookie de connexion ou un cookie d'autorisation dans l'en-tête du cookie ou contient un (ou les deux) de ces cookies et / allowAuthorized est défini sur 1 dans la configuration de la batterie.
request contains authorization
Requête HTTP : GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
non mis en cache |
Requête HTTP : GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
non mis en cache |
Requête HTTP : GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
Mis en mémoire cache |
7. Il existe un paramètre de requête dans l'url et il peut être ignoré par le biais de la configuration de la ferme/ignoreUrlParams.
request contains a query string
Requête HTTP : GET /content/test.html?test=1 HTTP/1.1 Configuration de la ferme du /cache : /ignoreUrlParams { |
Mis en mémoire cache |
Requête HTTP : GET /content/test.html?test=1 HTTP/1.1 Configuration de la ferme du /cache : /ignoreUrlParams { |
Mis en mémoire cache |
Requête HTTP : GET /content/test.html?test=1 HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /ignoreUrlParams { |
non mis en cache |
Remarque :
Si aucun /timeout n'est défini sur le /renders ou défini sur 0 il sera toujours dans l'attente d'une connexion à une instance de AEM même si l'instance est hors-service.
Unable to send request to remote server. Unable to receive response from remote server. Remote server returned: %s No backend available.
Backend forbids caching: %s, sent: %s" response contains no_cache
Réponse HTTP : 200 OK |
non mis en cache |
Réponse HTTP : 200 OK |
non mis en cache |
Réponse HTTP : 200 OK |
non mis en cache |
Réponse HTTP : 200 OK |
Mis en mémoire cache |
response content length is zero
Réponse HTTP : 200 OK |
non mis en cache |
Réponse HTTP : 200 OK |
Mis en mémoire cache |