Welche Anforderungen AEM Dispatcher-Cache?
In diesem Artikel wird festgelegt, warum und welche HTTP-Anfragen/Antworten von der AEM Dispatcher nicht zwischengespeichert werden.
Beschreibung description
Umgebung
AEM Dispatcher 4.3.3
Problem
Die Dokumentation behandelt die wichtigsten Szenarien, die sich auf die Cache-Fähigkeit von Anforderungen und Antworten auswirken, die durch das AEM Dispatcher-Modul ausgeführt werden. Alle Cache-Regeln werden nicht abgedeckt.
Auflösung resolution
HTTP-Anforderungs- und -Caching-Regeln
Damit eine HTTP-Anforderung vom Dispatcher zwischengespeichert werden kann, muss sie den folgenden Regeln entsprechen:
-
URL ist absolut (funktioniert nicht mit . oder …) eine Dateierweiterung hat und der Dateiname in der URL als Datei im Dateisystem funktioniert.
Verwandte Protokollmeldungen:
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
Beispiele:
table 0-row-2 1-row-2 /content/test
not cached
/content/test.html
cached
-
Nach der ersten Dateierweiterung gibt es keine Schrägstriche.
Verwandte Protokollmeldungen:
code language-none request URL has trailing slash
Beispiele:
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
-
Es verwendet HTTP-GET- oder HEAD-Methode.
Verwandte Protokollmeldungen:
code language-none request method is neither GET nor HEAD
Beispiele:
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
-
Die Anfrage wird von /CACHE =
>
/RULES verweigert, das im Dispatcher definiert ist. JEDE FARM-KONFIGURATION.Verwandte Protokollmeldungen:
code language-none URI not in cache rules: %s request URL not in cache rules
Beispiele:
a. Nicht zwischengespeichert
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "deny" glob "*" } } }
b. Zwischengespeichert
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "allow" glob "*" } } }
-
Die HTTP-Anfrage enthält keinen Autorisierungs-Header oder enthält den Header, aber /ALLOWAUTHORIZED ist in der FARM-KONFIGURATION auf 1 gesetzt.
Verwandte Protokollmeldungen:
code language-none request contains authorization
Beispiele:
a. Nicht zwischengespeichert
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. Zwischengespeichert
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
Die HTTP-Anforderung enthält ein Anmelde-Token- oder Autorisierungs-Cookie im Cookie-Header oder enthält entweder (oder beide) dieser Cookies und /ALLOWAUTHORIZED ist in der FARM-KONFIGURATION auf 1 gesetzt.
Verwandte Protokollmeldungen:
code language-none request contains authorization
Beispiele:
a. Nicht zwischengespeichert
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. Zwischengespeichert
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Cookie: login-token=... dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
Die URL enthält einen QUERYSTRING -Parameter und der Parameter darf über die KONFIGURATION /IGNOREURLPARAMS DER FARM ignoriert werden.
Verwandte Protokollmeldungen:
code language-none request contains a query string
Beispiele:
a. Zwischengespeichert
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. Nicht zwischengespeichert
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” } }
HTTP-Antwort- und Caching-Regeln:
Die von AEM zurückgegebene HTTP-Antwort kann zwischengespeichert werden, wenn die folgenden Kriterien erfüllt sind:
-
Der Dispatcher kann eine 200 OK-Antwort von einem der definierten "RENDERS"senden und empfangen.
Hinweis: Wenn für die /renders kein /timeout festgelegt oder auf 0 festgelegt ist, würde es ewig auf eine Verbindung zur AEM warten, selbst wenn die Instanz ausfällt.
Verwandte Protokollmeldungen:
code language-none Unable to send request to remote server. Unable to receive response from remote server. Remote server returned: %s No backend available.
Beispiele:
table 0-row-2 1-row-2 HTTP-Anforderung:
200 OKzwischengespeichert HTTP-Anforderung:
404 Seite nicht gefundennicht zwischengespeichert -
Keine dieser Antwortheader ist in der Antwort vorhanden:
Dispatcher: no-cache
Cache-control: no-cache
Pragma: no-cache
Verwandte Protokollmeldungen:
code language-none Backend forbids caching: %s, sent: %s" response contains no_cache
Beispiele:
table 0-row-2 1-row-2 2-row-2 3-row-2 HTTP-Antwort:
200 OK
Dispatcher: no-cachenicht zwischengespeichert HTTP-Antwort:
200 OK
Cache-Control: no-cachenicht zwischengespeichert HTTP-Antwort:
200 OK
Pragma: no-cachenicht zwischengespeichert HTTP-Antwort:
200 OKzwischengespeichert -
Der Wert der Inhaltslänge ist größer als NULL-BYTES.
Verwandte Protokollmeldungen:code language-none response content length is zero
Beispiele:
table 0-row-2 1-row-2 HTTP-Antwort:
200 OK
Content-Length: 0nicht zwischengespeichert HTTP-Antwort:
200 OK
Inhaltsdauer: 3120zwischengespeichert