Vilka förfrågningar AEM Dispatcher cache?
Den här artikeln avgör varför och vilka HTTP-begäranden/svar som inte cachas av AEM Dispatcher.
Beskrivning description
Miljö
AEM 4.3.3
Problem
Dokumentationen innehåller de viktigaste scenarierna som påverkar cachemöjligheterna för begäranden och svar som går igenom AEM Dispatcher-modulen. Alla cacheregler täcks inte.
Upplösning resolution
Regler för HTTP-begäran och -cachelagring
För att en HTTP-begäran ska kunna nås av avsändaren måste den följa följande regler:
-
URL är absolut (fungerar inte med . eller …) har ett filtillägg och filnamnet i URL:en fungerar som en fil i filsystemet.
Relaterade loggmeddelanden:
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
Exempel:
table 0-row-2 1-row-2 /content/test
not cached
/content/test.html
cached
-
Det har inga snedstreck efter det första filtillägget.
Relaterade loggmeddelanden:
code language-none request URL has trailing slash
Exempel:
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
-
Den använder HTTP-GET eller HEAD.
Relaterade loggmeddelanden:
code language-none request method is neither GET nor HEAD
Exempel:
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
-
Begäran nekas av /CACHE =
>
/REGLER definierade i dispatchern. ALLA GRUPPKONFIGURATIONER.Relaterade loggmeddelanden:
code language-none URI not in cache rules: %s request URL not in cache rules
Exempel:
a. Inte cachelagrad
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "deny" glob "*" } } }
b. Cachelagrad
code language-none Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "allow" glob "*" } } }
-
HTTP-begäran innehåller inte någon auktoriseringshuvud eller så innehåller den rubriken, men /ALLOWAUTHZED är inställd på 1 i FARM CONFIGURATION.
Relaterade loggmeddelanden:
code language-none request contains authorization
Exempel:
a. Inte cachelagrad
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. Cachelagrad
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
HTTP-begäran innehåller inloggnings-token eller auktoriserings-cookie i cookie-huvudet, eller så innehåller den antingen (eller båda) av dessa cookies och /ALLOWAUTHZED är inställd på 1 i FARM CONFIGURATION.
Relaterade loggmeddelanden:
code language-none request contains authorization
Exempel:
a. Inte cachelagrad
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. Cachelagrad
code language-none HTTP Request: GET /content/test.html HTTP/1.1 Cookie: login-token=... dispatcher.any farm /cache => /allowAuthorized configuration: /cache { /allowAuthorized “1” }
-
Det finns en QUERYSTRING-parameter i URL:en och parametern kan ignoreras via FARM:S /IGNOREURLPARAMS CONFIGURATION.
Relaterade loggmeddelanden:
code language-none request contains a query string
Exempel:
a. Cachelagrad
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. Inte cachelagrad
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-svar och cachningsregler:
HTTP-svaret som returneras från AEM kan nås om följande villkor uppfylls:
-
Avsändaren kan skicka och ta emot 200 OK-svar från en av de definierade RENDERS-alternativen.
Obs! Om nej /timeout är inställt på /renders eller är inställt på 0, så väntar det för alltid på en anslutning till AEM även om instansen är nere.
Relaterade loggmeddelanden:
code language-none Unable to send request to remote server. Unable to receive response from remote server. Remote server returned: %s No backend available.
Exempel:
table 0-row-2 1-row-2 HTTP-begäran:
200 OKcache HTTP-begäran:
404 Sidan hittades inteinte cachelagrad -
Inga av dessa svarshuvuden finns med i svaret:
Dispatcher: no-cache
Cache-control: no-cache
Pragma: no-cache
Relaterade loggmeddelanden:
code language-none Backend forbids caching: %s, sent: %s" response contains no_cache
Exempel:
table 0-row-2 1-row-2 2-row-2 3-row-2 HTTP-svar:
200 OK
Dispatcher: ingen cacheinte cachelagrad HTTP-svar:
200 OK
Cache-control: no-cacheinte cachelagrad HTTP-svar:
200 OK
Pragma: ingen cacheinte cachelagrad HTTP-svar:
200 OKcache -
Värdet för innehållslängd är större än ZERO BYTES.
Relaterade loggmeddelanden:code language-none response content length is zero
Exempel:
table 0-row-2 1-row-2 HTTP-svar:
200 OK
Innehållslängd: 0inte cachelagrad HTTP-svar:
200 OK
Content-Length: 3120cache