Cache control is not set by Apache2.4 and dispatcher when using Head request | Community
Skip to main content
December 4, 2020
Question

Cache control is not set by Apache2.4 and dispatcher when using Head request

  • December 4, 2020
  • 1 reply
  • 2845 views

 

We are migrating from Apache2.2 to Apache2.4 , seeing a strange behavior with  curl -I HEAD request ,when then content is not cached on Apache , cache control header is not set, but once the content is cached on Apache header is set . Any one have any idea why this is happening.

 

Apache: 2.4.46

dispatcher:4.3.3

 

cache control rule on Apache

Header always set Cache-Control "public, max-age=86400"

 

curl -I http://localhost/test.html

HTTP/1.1 200 OK
Date: Fri, 04 Dec 2020 20:21:17 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Type: text/html;charset=utf-8

 

Thanks
Rakesh

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

shelly-goel
Adobe Employee
Adobe Employee
December 5, 2020

Hi Rakash,

This is an expected behavior/ feature in dispatcher 4.1.11 onwards for caching HTTP response headers.

/headers property under /cache section allows to define the HTTP header types that are going to be cached by the Dispatcher. On the first request to an uncached resource, all headers matching one of the configured values (see the configuration sample below) are stored in a separate file, next to the cache file. On subsequent requests to the cached resource, the stored headers are added to the response.

/cache {
  ...
  /headers {
    "Cache-Control"
    "Content-Disposition"
    "Content-Type"
    "Expires"
    "Last-Modified"
    "X-Content-Type-Options"
    "Last-Modified"
  }
}

Reference: https://experienceleague.adobe.com/docs/experience-manager-dispatcher/using/configuring/dispatcher-configuration.html?lang=en#caching-http-response-headers

Hope this helps.

rakmvkAuthor
December 5, 2020

Thanks Shelly for the Answer , we were using Apache2.2 with dispatcher 4.2.2 . And Apache was adding cache control header correctly, which was working fine for HEAD(content no cached) and GET. On 2.4 ,if there is a cache miss and if i run curl - I HEAD request ,cache control header is missing were are if i use GET header is inserted correctly. Want to make sure if this Apache or dispatcher