PRB: Forward and Back Button Behavior in Internet ExplorerID: Q199805
|
As of Internet Explorer 5, the browser does not refresh pages when the Forward and Back buttons are used. Pages accessed through the navigation history stack are always pulled from the cache.
The behavior of Back and Forward was changed to conform to section 13.13 of the HTTP 1.1 specification, which states the following:
User agents often have history mechanisms, such as "Back" buttons and history lists, which can be used to redisplay an entity retrieved earlier in a session.
History mechanisms and caches are different. In particular history mechanisms SHOULD NOT try to show a semantically transparent view of the current state of a resource. Rather, a history mechanism is meant to show exactly what the user saw at the time when the resource was retrieved.
This behavior is by design.
The Web server is only contacted if the page file is not in the cache. Expiration headers from the server will have no affect over this behavior, as described in the HTTP 1.1 specification.
For static files, this is almost always the desired behavior. If the file content is not changing on the server, then it improves Internet Explorer's performance greatly to never contact the server for those files when the back and forward buttons are used.
For dynamically generated files, however, problems in Web site applications can often erupt if the user is unaware that the file or page is stale when using the Back or Forward buttons to navigate through pages on a site. This is particularly bad when the dynamic pages use HTML forms to interact
with server side processes.
For these dynamic files, Web servers should include the HTTP 1.1 "Cache-Control: no-cache" header in the HTTP response as described in the HTTP 1.1 recommendation to prevent the file from caching. Here is an example ASP page that will not be cached by Internet Explorer 5.0:
<%@ Language=VBScript %>
<%
' The following line is the important part:
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
%>
<HTML><BODY>
<P>This page is using "Cache-Control: no-cache." This page should not be
cached for any reason whatsoever. Access to the page via the Back button should pull
the page back from the server.</P>
<P>
Current Time:
<%= Now() %>
</P>
</BODY></HTML>
The "Pragma: no-cache" header is not essential but is recommended to prevent caching problems involving proxy servers and older versions of Internet Explorer.See section 13.13 of Revision 5 to HTTP 1.1 proposed standard:
http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-rev-05.txtFor more information on Internet Explorer 5's object model support for persistence behaviors, see the DHTML Persistence documentation on the MSDN Online Web Workshop:
http://msdn.microsoft.com/workshop/author/persistence/overview.aspFor additional information about Forward and Back button behavior, click the article number below to view the article in the Microsoft Knowledge Base:
Q229684 Back Button in Internet Explorer Becomes Unavailable
Additional query words:
Keywords : kbWinInet kbGrpInet kbIE500 kbCaching
Version : WINDOWS:5.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: August 5, 1999