Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm on an apache 2 web server, and I'm serving the following site:

Everywhere except IE7/Vista IE8/Vista the cache seems to work wonderfully. On these two systems however, something isn't right, and the entire page loads from the server every time.

Is there something I can do in my headers or meta tags that would fix it? Is there something I am doing that is breaking it?

share|improve this question
up vote 0 down vote accepted

Presumably the cache settings of have been changed in the 4 months since you've asked this question, since this is the response I get from the home page:

HTTP/1.0 200 OK
Date: Fri, 12 Feb 2010 21:12:33 GMT
Server: Apache/2.2.4 (Ubuntu) mod_python/3.3.1 Python/2.5.1 PHP/5.2.3-1ubuntu6.4 mod_ssl/2.2.4 OpenSSL/0.9.8e
X-Powered-By: PHP/5.2.3-1ubuntu6.4
Set-Cookie: PHPSESSID=61d5ecec89d3d5c29d85aa1e3629b5b5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 2695
Content-Type: text/html; charset=utf-8

If you wanted to make this cacheable, you'd get rid of the Pragma header, and change the Expires to the date at which this page expires, and change Cache-Control to specify the max-age to cache the page; for example, to cache for 1 hour:

HTTP/1.0 200 OK
Date: Fri, 12 Feb 2010 21:12:33 GMT
Expires: Fri, 12 Feb 2010 22:12:33 GMT
Cache-Control: public, max-age=3600

If you're using apache2, use mod_cache for this.

But if you set up your cache headers correctly and still see ie not using its cache, check the "Temporary Internet Files" setting in ie:

  1. Select the "Internet Options" menu item from the "Tools" menu in ie.
  2. Click the "Settings" button in the "Browsing history" section of the "General" tab.
  3. Select the "Automatically" radio button under the "Check for newer versions of stored pages" heading.
  4. Click OK, and OK again.

If the "Every time I visit the webpage" radio button is selected instead of "Automatically", it doesn't matter what cache headers you send -- ie will make a new request to the server for it every time you navigate to your page through the browser ui.

Also note that the Vary header can also screw up ie's caching model (see Vary: Accept-Encoding should be fine, though.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.