Question

I have a web page that always needs to stay current. I do not want the browser to cache it. To that end, this meta tag is embedded with the page:

<meta name="Expires" content="Tue, 01 Jun 1999 19:58:02 GMT"> 

However, some browsers seem to ignore it. Chrome is particularly bad at it, though other browsers tend to do the same thing.

When I pick the page from the bookmarks bar, most of the time, it doesn't even hit the server, just loads it from cache. If I then press F5, it does go to the server and fetch a new copy.

Am I missing something simple? I thought the expires meta tag is the way it's done.

This is happening on an IIS 5.0 on Windows 2000.


Bottom line: looks like meta tags inside the HTML code pretty much do nothing. However, setting the expires tags within the HTTP does the trick nicely.

Was it helpful?

Solution

Send your expires headers using your server. Specifically, if you're using apache, look at this:

http://httpd.apache.org/docs/2.0/mod/mod_expires.html

OTHER TIPS

This should help you:

<meta http-equiv="cache-control" content="no-cache" />

You can also configure the static content cache mechanism through IIS; you can learn how to do so here: http://support.microsoft.com/kb/247404.

You want to send an Expires header set to a date in the past (like your Meta tag).

Expires is the most widely respected cache header, but you can also use things like Last-Modified, or Etags to get more specific control.

Meta tags are a somewhat outdated means of setting caching protocols, and most of the meta cache control properties are fairly deprecated (e.g. NO-CACHE). A lot of user agents ignore them.

There is a great article I used to read about browser caching ans caching in general :

http://www.mnot.net/cache_docs/

It explains in high details what works and what does not, what is best to do.

In summary there are a lot of ways (html tags, HTTP headers) and types of cache (browser proxy, gateways)

Send Cache-Control: no-cache to the client within the response headers.
Please specify what platform are you using to make a better response.

<meta http-equiv="Cache-Control" content="private, no-store" />

Is really ALL you need, as stated here https://youtu.be/TNlcoYLIGFk?t=654 by Andrew Betts, elected W3C TAG member.

Using this, you will not need pragma or expires. Infact, the above will overwrite the Expires command.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top