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 Dispatcher 4.3.3
Utgåva
Dokumentationen innehåller de viktigaste scenarierna som påverkar cachemöjligheterna för begäranden och svar som går igenom modulen AEM Dispatcher. 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 som definieras 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 ingen /timeout har angetts för /renders eller har värdet 0 väntar den 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