"Vary:*" means the response changes depending on factors outside the HTTP protocol for which shared proxies like Squid are 100% unable to determine whether the cached response is appropriate to deliver. Even if you did store it, the cache would still always MISS. FWIW: The server for stackoverflow is presenting several conflicting cache controls. Personally I think that server should be emitting an ETag header and Cache-Control:max-age=60 instead of the Vary and the Cache-Control's it is using. But even so there is still nothing any proxy can do about it except MISS. Also, be aware that curl by default sends cache control headers forcing a MISS, so it is not the best tool to be testing proxies with. Prefer wget, squidclient, or the HTTP validator at http://redbot.org/. Amos On 8/04/2014 2:00 p.m., Sylvio Cesar wrote: > curl -x localhost:3128 --silent -o /dev/null --dump-header /dev/stdout > http://stackoverflow.com > HTTP/1.1 200 OK > Cache-Control: public, max-age=18 > Content-Type: text/html; charset=utf-8 > Expires: Tue, 08 Apr 2014 02:00:38 GMT > Last-Modified: Tue, 08 Apr 2014 01:59:38 GMT > Vary: * > X-Frame-Options: SAMEORIGIN > Date: Tue, 08 Apr 2014 02:00:18 GMT > Content-Length: 212147 > X-Cache: MISS from sylviosuse11 > X-Cache-Lookup: MISS from sylviosuse11:3128 > Via: 1.1 sylviosuse11 (squid/3.4.4) > Connection: keep-alive >