[thelist] Prevent Caching in IE

Bill Moseley moseley at hank.org
Mon May 5 13:11:23 CDT 2008


I use these headers to indicate that dynamic content should not be
cached at all.

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache.

See [1] below, though.

Although it works fine in Firefox I noticed that when I would issue a
redirect in IE back to the same page (redirect-after-POST) that IE
would show a cached version of the page and not fetch the page.

So, IE was still caching the page.

Article http://support.microsoft.com/kb/234067 says to use -1 for
Expires:

    <% Response.CacheControl = "no-cache" %>
    <% Response.AddHeader "Pragma", "no-cache" %>
    <% Response.Expires = -1 %>

I'm not using ASP, but I have added

    Expires: -1

in the HTTP response headers and indeed IE no longer shows a cached
page.  Problem solved.

But that does not look like a valid HTTP Expires header.

What should I set to force IE to always refetch the page and never
cache the page?  Something like:

    Expires: Thu, 01 Jan 1970 00:00:00 GMT


BTW -- here's a separate caching issue.  In this case I want the
browser to cache static content (css, images, js) and not fetch
it from the server again.  So I set Expires way out in the future.

But, Firefox does not cache SSL pages by default.  That can be enabled
by setting browser.cache.disk_cache_ssl = true in about:config.  That
gets Firefox to not fetch pages I want cached, but it also has the
effect of putting a slash thorough the lock icon.  That normally means
that some elements on the page are not SSL.



[1] Actually, that's a bit cargo-cult because of the inclusion of post-
and pre-check.  And in fact may present problems[1] with IE7.

    http://blogs.msdn.com/ie/archive/2006/06/01/613132.aspx



-- 
Bill Moseley
moseley at hank.org




More information about the thelist mailing list