Created 12/2001
Preventing Browser Cache
Multiple Platform Solutions
Bill Volk wrote on the websandiego.org mailing list:
> On a similar subject ... what's the best way to force a Browser to do a
> refresh on a page when the user uses the "Back Arrow" to get to it? I need
> to referesh the session objects.
This is a persistent problem, particularly with sites whose content updates frequently. The most common answer I see answering this question is to use <meta> tags in the <head> of the document.
<meta http-equiv="Expires" content="Tue, 01 Jan 2000 12:12:12 GMT"> <meta http-equiv="Pragma" content="no-cache">
...although this works inconsistently or not at all in Internet Explorer.
The way to do it according to the HTTP spec (RFC 2187) is to generate raw HTTP headers. Below are some different code snippets for some different server-side languages.
In ASP/IIS: http://support.microsoft.com/support/kb/articles/Q234/0/67.asp <% Response.CacheControl = "no-cache" %> <% Response.AddHeader "Pragma", "no-cache" %> <% Response.Expires = -1 %> In PHP: http://www.php.net/manual/en/function.header.php <? Header('Cache-Control: no-cache'); Header('Pragma: no-cache'); ?> In COLD FUSION: <cfheader name="Expires" value="#Now()#"> <cfheader name="Pragma" value="no-cache"> In JSP: http://www.jguru.com/faq/view.jsp?EID=377&page=2 <% response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); response.setDateHeader ("Expires", 0); %>
If you want to view the raw headers of your web page - you can use this service: http://www.delorie.com/web/headers.html Sample HTTP Headers: (for this page) HTTP/1.1 200 OK Date: Tue, 29 Oct 2002 19:50:44 GMT Server: Apache/1.3.27 X-Powered-By: PHP/4.2.2 Cache-Control: no-cache Pragma: no-cache Connection: close Content-Type: text/html