Welche Anfragen speichert AEM Dispatcher im Cache?
Dieser Artikel bestimmt, 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 Anfragen und Antworten auswirken, die das AEM Dispatcher-Modul durchlaufen. Es werden nicht alle Cache-Regeln behandelt.
Auflösung resolution
Regeln für HTTP-Anfragen und Caching
Damit eine HTTP-Anfrage vom Dispatcher zwischengespeichert werden kann, muss sie die folgenden Regeln einhalten:
-
URL ist absolut (funktioniert nicht mit ). oder …), eine Dateierweiterung aufweist 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
-
Sie verwendet die 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 keine Autorisierungs-Kopfzeile oder sie enthält die Kopfzeile, 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-Anfrage enthält das Anmelde-Token oder das Autorisierungs-Cookie im Cookie-Header oder sie enthält eines (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, der über die /IGNOREURLPARAMS-KONFIGURATION der FARM ignoriert werden darf.
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” } }
Regeln für HTTP-Antwort und Zwischenspeicherung:
Die von AEM zurückgegebene HTTP-Antwort ist zwischenspeicherbar, wenn die folgenden Kriterien erfüllt sind:
-
Der Dispatcher kann eine Antwort von 200 OK von einem der definierten „RENDERS“ senden und empfangen.
Hinweis: Wenn für /renders kein /Timeout festgelegtoder der Wert auf 0 festgelegt ist, würde sie unaufhörlich auf eine Verbindung zur AEM-Instanz warten, selbst wenn die Instanz ausgefallen ist.
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-Anfrage:
200 OKZwischengespeichert HTTP-Anfrage:
404 Seite nicht gefundenNicht zwischengespeichert -
Keine dieser Antwort-Header 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: kein CacheNicht zwischengespeichert HTTP-Antwort:
200 OK
Cache-Steuerung: kein CacheNicht zwischengespeichert HTTP-Antwort:
200 OK
Pragma: kein CacheNicht zwischengespeichert HTTP-Antwort:
200 OKZwischengespeichert -
Der Wert für die Inhaltslänge ist größer als NULL BYTE.
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
Inhaltslänge: 3120Zwischengespeichert