防止在 Internet Explorer 中进行缓存

来源:互联网 发布:淘宝客链接api申请 编辑:程序博客网 时间:2024/05/16 19:17

可以在特定 Active Server Pages (ASP) 页的最开始位置,使用以下脚本代码方便地标记高度易变页或敏感页

<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
强烈建议所有 Web 服务器都使用针对所有 Web 页的过期方案。如果 Web 服务器不通过 HTTP Expires 响应标题为返回给请求客户端的每种资源提供过期信息,则这种做法是不可取的。目前,多数浏览器和中间代理都很重视此过期信息,并使用它来提高网络的通讯效率。

当服务器上的特定文件需要由客户端更新时,应始终使用 Expires 标题来指定最合理的时间。如果定期更新页,则下一个更新周期将是最有效的响应。例如,假设 Internet 上的某个每日新闻页在每天早晨 5 点更新。此新闻页的 Web 服务器应返回一个带有第二天早晨 5 点这一值的 Expires 标题。这样,在该页实际更改之前,浏览器就不必再联系 Web 服务器。

预期不进行更改的页应使用约为一年的过期日期进行标记。

在许多情况下,Web 服务器在包含信息的服务器上有一个或多个随时可能更改的易变页。因此,该服务器应将这些页的 Expires 标题的值标记为“-1”。当用户在将来进行请求时,Internet Explorer 通常会通过 If-Modified-Since(如果-修改-自)条件请求联系该 Web 服务器,以获取对该页的更新。不过,该页仍会保留在磁盘缓存(“Internet 临时文件”)中,并在适当的情况下(如在使用“后退”和“前进”按钮访问导航历史时,或在浏览器处于脱机模式时)使用,而无须联系远程 Web 服务器。

不过,有些页非常易变或者非常敏感,以至于它们不需要磁盘缓存。为解决这一问题,Internet Explorer 提供了对 HTTP 1.1 Cache-Control 标题的支持,当 HTTP 1.1 服务器指定 no-cache 值时,这可以完全防止缓存特定的 Web 资源。

由于在浏览器重新联系 Web 服务器之前无法访问不在缓存中的页,因此服务器应慎用 Cache-Control 标题。在多数情况下,使用“Expires:-1”较为可取。  

原创粉丝点击