Most content I’ve observed being served from ASP.NET has only a Cache-Control: private header, with no Last-Modified or Etag header.
I’ve also observed that browsers never seem to cache this content, evidenced by having never seen browsers issue anything but unconditional GET requests for it.
I’m trying to support the assertion that a resource having Cache-Control:private and no expiration data will be treated by all browsers as “do not cache”, but can’t find anything in the RFC (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) to confirm or refute it.
Is my assertion correct? Please cite!
There’s an email chain over on W3C which dates back about 15 years: http://www.w3.org/Protocols/HTTP/Issues/cache-private.html
It goes on to say:
And most importantly:
So on this basis I’m taking it to mean that non-private caching is disallowed (i.e. at the proxy layer), but private caching is allowed (i.e. within the browser). I know this is simply discussion about a draft spec but it’s the best explanation I’ve been able to find so far.