Search squid archive

Re: Internet Explorer caching problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 31.01.2012 06:32, Andy Nagai wrote:
We have noticed that the pages which have no-cache response header settings
are being cached in IE 7-8 no matter what settings on the browser is.

"no-cache" does not mean what you seem to think it means.
"no-cache" from a server is *actually* meant to list a set of headers which are to be erased from the cached object when its delivered as a HIT later on. For example, Cache-Control: no-cache="Cookie,Via". When its supplied by the server without any list at all, it is identical in behaviour to "must-revalidate".

"Pragma: no-cache" has no meaning in responses. It is ignored by most HTTP software.

"Expires: -1" is invalid, HTTP software treats invalid values as a date in the past. Caching *is* permitted, but it is also treated as stale content that need revalidating before re-use. eg, this is equivalent to "must-revalidate'.


The *only* relevant part of that request you provided which actually prevents caching is "no-store". Which as its name suggests tells the proxy not to store the object at all.


Here is a great resource covering what the controls do and when to use them: http://www.mnot.net/cache_docs/ Marks blog and some other documents add to that with more specific details on specific cases if you need more info. The HTTPbis working groups latest Draft RFCs also have some clear explanations of the various bits.


IE doesn't necessarily not cache if told not to. Apparently IE recognizes the no-cache meta tags and this should be placed at the end of the html in another head section according to this article. The meta tag should not be placed at the very top before 32kb are transmitted. I have tested this fix
and now the pages I don't want cached are not caching in IE.

http://support.microsoft.com/kb/222064/

This is a good example of confusing multi-layered design. Squid and many other cache intermediaries are based on the HTTP protocol headers *alone*. The above page is discussing HTML meta data which is completely separate from the HTTP layer. You cannot depend on page tags meaning anything to any proxy along the request path.
see http://www.mnot.net/cache_docs/#META for why it does not work.


Also see this


http://www.htmlgoodies.com/beyond/reference/article.php/3472881/So-You-Dont-
Want-To-Cache-Huh.htm


Ewww.

Amos


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux