The documentation covers the most important scenarios that affect the cache-ability of requests and responses which go through the AEM Dispatcher module. All cache rules are not covered.
1. URL is absolute (not starting with . or ..), has a file extension and the filename in the url works as a file on the file system.
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
request URL has trailing slash
request method is neither GET nor HEAD
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 |
URI not in cache rules: %s request URL not in cache rules
Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "deny" glob "*" } } |
not cached |
Farm has /cache => /rules and a request is received for /content/test.html /cache { ... /rules { /0001 { type "allow" glob "*" } } |
cached |
5. The HTTP request does not contain an Authorization header or it contains the header but /allowAuthorized is set to 1 in the farm configuration.
request contains authorization
HTTP Request: GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
not cached |
HTTP Request: GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
cached |
6. The HTTP request contains login-token or authorization cookie in the Cookie header or it contains either (or both) of those cookies and /allowAuthorized is set to 1 in the farm configuration.
request contains authorization
HTTP Request: GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
not cached |
HTTP Request: GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
not cached |
HTTP Request: GET /content/test.html HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /cache { |
cached |
7. There's a querystring parameter in the URL and the parameter is allowed to be ignored via the farm's /ignoreUrlParams configuration.
request contains a query string
HTTP Request: GET /content/test.html?test=1 HTTP/1.1 Farm /cache configuration: /ignoreUrlParams { |
cached |
HTTP Request: GET /content/test.html?test=1 HTTP/1.1 Farm /cache configuration: /ignoreUrlParams { |
cached |
HTTP Request: GET /content/test.html?test=1 HTTP/1.1 dispatcher.any farm /cache => /allowAuthorized configuration: /ignoreUrlParams { |
not cached |
1. The dispatcher is able to send and receive a 200 OK response from the one of the defined "renders".
註解:
If no /timeout is set on the /renders or it is set to 0 then it would wait forever for a connection to the AEM instance even if the instance is down.
Unable to send request to remote server. Unable to receive response from remote server. Remote server returned: %s No backend available.
Backend forbids caching: %s, sent: %s" response contains no_cache
HTTP Response: 200 OK |
not cached |
HTTP Response: 200 OK |
not cached |
HTTP Response: 200 OK |
not cached |
HTTP Response: 200 OK |
cached |
response content length is zero
HTTP Response: 200 OK |
not cached |
HTTP Response: 200 OK |
cached |