Why is the browser not caching my images?

caching, header

Solution

It turns out that this seems to be a Chrome feature

See this other SO answer for why: Chrome doesn't cache images/js/css

Problem

I am using nginx and Adaptive Images to deliver dynamically sized images based on device resolution. The response headers being set by the adaptive-images.php file are shown below but every time I refresh the page the browser requests the images again. Why is the browser not caching these images? The browser is Google Chrome and it seems to be setting `max-age=0` in the request headers no matter how I refresh. I've tried F5, Ctrl+F5 and entering the URL in the address bar and hitting Enter. Request Headers: ``` GET /img/photos/p8.jpg HTTP/1.1 Host: example.com Connection: keep-alive Cache-Control: max-age=0 Accept: image/webp,*/*;q=0.8 Pragma: no-cache If-Modified-Since: Wed, 16 Jul 2014 12:01:31 GMT User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 Referer: http://example.com/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8,en-GB;q=0.6 ``` Response Headers: ``` HTTP/1.1 200 OK Server: nginx Date: Wed, 16 Jul 2014 12:08:55 GMT Content-Type: image/jpeg Content-Length: 391104 X-Powered-By: PHP/5.4.30 Cache-Control: private, max-age=604800 Expires: Wed, 23 Jul 2014 12:08:55 GMT Last-Modified: Wed, 16 Jul 2014 12:08:55 GMT Connection: Keep-Alive ```

Original source

Related problems