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
Views
Replies
Total Likes
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" } }
Hope this helps.
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
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Like
Replies
Views
Likes
Replies