Although this question should be trivial, I could not enable browser caching on the java server web server for Google.
I am trying to put this in my appengine-web.xml:
<static-files> <include path="/**.cache.**" expiration="365d" /> ...
but when I look at the response header, I find this local:
Content-Length: 196084 Cache-Control: public, max-age=31536000 Expires: Fri, 10 Jan 2014 19:40:45 GMT Content-Type: image/png Last-Modified: Tue, 18 Dec 2012 21:41:22 GMT Server: Jetty(6.1.x)
Which is good ... but this is in a production environment:
HTTP/1.1 304 Not Modified ETag: "RV4Bpg" X-AppEngine-Estimated-CPM-US-Dollars: $0.000000 X-AppEngine-Resource-Usage: ms=109 cpu_ms=0 Date: Thu, 10 Jan 2013 19:41:20 GMT Pragma: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, must-revalidate Server: Google Frontend
Which is finally not what I want: (
Any idea? Did I miss something?
[EDIT] For content not yet uploaded, my browser receives the following header:
HTTP/1.1 200 OK ETag: "RV4Bpg" Date: Fri, 11 Jan 2013 12:50:50 GMT Expires: Sat, 11 Jan 2014 12:50:50 GMT Cache-Control: public, max-age=31536000 X-AppEngine-Estimated-CPM-US-Dollars: $0.000000 X-AppEngine-Resource-Usage: ms=3 cpu_ms=0 Date: Fri, 11 Jan 2013 12:50:50 GMT Pragma: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, must-revalidate Content-Type: image/png Server: Google Frontend Content-Length: 196084 Proxy-Connection: Keep-Alive Connection: Keep-Alive X-RBT-Optimized-By: eu-dcc-sh02 (RiOS 6.5.5b) SC
ETag and several conflicting "Expires" and "Cache-Control" ... Are there several ways to configure a caching policy? Could this come from my ISP? or proxy?