Umgebung

AEM Dispatcher 4.2.3

Frage

Welche HTTP-Anforderungen und Antworten werden vom AEM-Dispatcher zwischengespeichert?

Antwort

Die Dokumentation behandelt die wichtigsten Szenarien, die sich auf die Fähigkeit zum Zwischenspeichern von Anforderungen und Antworten auswirken, die durch das AEM Dispatcher-Modul laufen. Es werden nicht alle Zwischenspeicherregeln abgedeckt.

HTTP-Anforderung und Zwischenspeicherregeln:

Damit eine HTTP-Anforderung vom Dispatcher zwischengespeichert werden kann, muss sie den folgenden Regeln folgen.

1. URL ist absolut (beginnt nicht mit . oder ..), hat eine Dateierweiterung und der Dateiname in der URL funktioniert als Datei im Dateisystem.

Verwandte Protokollmeldungen:

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:

/content/test nicht zwischengespeichert
/content/test.html zwischengespeichert

2. Es finden sich keine Schrägstriche nach der ersten Dateierweiterung.

Verwandte Protokollmeldungen:

request URL has trailing slash

Beispiele:

/content/test.html/ nicht zwischengespeichert
/content/test.html/foo.jpg nicht zwischengespeichert
/content/test.html zwischengespeichert

3. Es verwendet die HTTP „GET“- oder „HEAD“-Methode.

Verwandte Protokollmeldungen:

request method is neither GET nor HEAD

Beispiele:

HEAD /content/test.html HTTP/1.1 zwischengespeichert
GET /content/dam/test.jpg HTTP/1.1 nicht zwischengespeichert
POST /content/test.html HTTP/1.1 nicht zwischengespeichert

4. Die Anforderung wird von /cache => /rules, definiert in der „.any“-Farmkonfiguration des Dispatchers, verweigert.

Verwandte Protokollmeldungen:

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

Beispiele:

Farm hat /cache => /rules und eine Anforderung für /content/test.html wird erhalten

/cache

{

  ...

  /rules

  {

    /0001 {

      type "deny"

glob "*"

  }

}

nicht zwischengespeichert

Farm hat /cache => /rules und eine Anforderung für /content/test.html wird erhalten

/cache

{

  ...

  /rules

  {

    /0001 {

      type "allow"

glob "*"

  }

}

zwischengespeichert

5. Die HTTP-Anfrage enthält keine Berechtigungskopfzeile oder sie enthält die Kopfzeile, aber /allowAuthorized ist in der Farmkonfiguration auf "1" gesetzt

Verwandte Protokollmeldungen:

request contains authorization

Beispiele:

HTTP Anfrage:

GET /content/test.html HTTP/1.1
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

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

/cache {
/allowAuthorized "0"
}

nicht zwischengespeichert

HTTP Anfrage:

GET /content/test.html HTTP/1.1
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

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

/cache {
/allowAuthorized "1"
}

zwischengespeichert

6. Die HTTP-Anfrage beinhaltet ein Anmeldetoken oder ein Berechtigungs-Cookie in der Cookie-Kopfzeile, oder sie beinhaltet einen (oder beide) dieser Cookies und /allowAuthorized ist in der Farmkonfiguration auf „1“ gesetzt.

Verwandte Protokollmeldungen:

request contains authorization

Beispiele:

Verwandte Protokollmeldung:

Beispiele:

HTTP Anfrage:

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

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

/cache {
/allowAuthorized "0"
}

nicht zwischengespeichert

HTTP Anfrage:

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

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

/cache {
/allowAuthorized "0"
}

nicht zwischengespeichert

HTTP Anfrage:

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

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

/cache {
/allowAuthorized "1"
}

zwischengespeichert

7. Es gibt einen Abfragenzeichenfolge-Parameter in der URL. Der Parameter kann via der /ignoreUrlParams-Konfiguration der Farm ignoriert werden.

Verwandte Protokollmeldungen:

request contains a query string

Beispiele:

HTTP Anfrage:

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

Farm /cache-Konfiguration:

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

zwischengespeichert

HTTP Anfrage:

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

Farm /cache-Konfiguration:

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

zwischengespeichert

HTTP Anfrage:

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" }
}

nicht zwischengespeichert

HTTP-Antwort und Zwischenspeicherregeln:

Die von AEM zurückgegebene HTTP-Antwort kann zwischengespeichert werden, wenn die folgenden Kriterien erfüllt sind.

1. Der Dispatcher kann 200 „OK“-Antworten von einem der definierten „Render“ senden und empfangen.

Hinweis:

Falls kein /timeout auf den /renders festgelegt ist oder wenn es auf 0 gesetzt ist, wartet es für immer auf eine Verbindung mit der AEM-Instanz, sogar, wenn diese Instanz nicht erreichbar ist.

Verwandte Protokollmeldungen:

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

Beispiele:

HTTP Anfrage:

200 OK

zwischengespeichert

HTTP Anfrage:

404 Page Not Found

nicht zwischengespeichert

2. Keine dieser Antwort-Kopfzeilen sind in der Antwort vorhanden:

  • Dispatcher: no-cache
  • Cache-Control: no-cache
  • Pragma: no-cache

Verwandte Protokollmeldung:

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

Beispiele:

HTTP-Antwort:

200 OK
Dispatcher: no-cache

nicht zwischengespeichert

HTTP-Antwort:

200 OK
Cache-control: no-cache

nicht zwischengespeichert

HTTP-Antwort:

200 OK
Pragma: no-cache

nicht zwischengespeichert

HTTP-Antwort:

200 OK

zwischengespeichert

3. Der Wert für die Inhaltslänge ist größer als null Bytes.

Verwandte Protokollmeldung:

response content length is zero

Beispiele:

HTTP-Antwort:

200 OK
Content-Length: 0

nicht zwischengespeichert

HTTP-Antwort:

200 OK
Content-Length: 3120

zwischengespeichert

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie