How do I stop Chrome sending Cache-control: max-age=0 when I hit enter?
I'm on a slightly flaky connection and I'm trying to improve my browsing experience with the use of a local proxy. According to my research, however, if I hit 'enter' in my browser on an existing URL, it'll send a Cache-Control: max-age=0
header to the proxy, which will, in turn, make round-trips to the server to revalidate the content.
I don't particularly want this; if the object is stale, the cache will re-fetch it, but if it's not stale I don't see why I'd want the object revalidated every freakin' time. If I suspect the page is old, I've got shift-F5 and I'm not afraid to use it.
So, is there a tunable somewhere behind the scenes in Chrome that'll turn this annoying behaviour off?
I have found that if you browse to a page through your back-button or a link, Chrome doesn't send the max-age=0 header and will usually (if the apache server on the other side is configured for caching) use a cached version of the page.
However, when you enter the URL (e.g. www.example.com/abcd/index.html) directly into the address bar and then press Return, Chrome will always send the Cache-Control: max-age=0
header, which circumvents caching.
It is possible to modify the headers Chrome sends to a webserver using either userscripts (ala greasemonkey) or extensions. Here is one extension that should work: ModHeader
According to the introduction and screenshot, adding a header such as cache-control max-age=1000
should be relatively straightforward. It also supports domain whitelists to prevent headers from being sent to specific websites. You may need enable certain experiments in chrome://flags for this work.