在服务器-客户端设置中,当服务器向客户端发送有效期为 2 天的页面时,我是否更正了客户端收到服务器响应后的 2 天,客户端才会加载缓存页面?
真正的问题:客户端中的页面还没有过期,服务器可以推送客户端检查页面的修改副本吗?
我希望客户端仅在页面过期或服务器推送它们这样做时才请求。
在服务器-客户端设置中,当服务器向客户端发送有效期为 2 天的页面时,我是否更正了客户端收到服务器响应后的 2 天,客户端才会加载缓存页面?
真正的问题:客户端中的页面还没有过期,服务器可以推送客户端检查页面的修改副本吗?
我希望客户端仅在页面过期或服务器推送它们这样做时才请求。
根据我对http://www.ietf.org/rfc/rfc2616.txt的了解,是的,这就是 Expiration 控制的意图 - 可以用于离线浏览的页面的“陈旧”级别或者在网络响应不佳的情况下。
第 14.9.4 节确实说明了客户端和缓存在接收到 must-revalidate 指令时应该如何表现。这不会强制客户端下载,只是为了检查服务器的最后修改日期,这是我认为你需要的。
在 IIS 中,指令是
<% Response.Expires = -1 %>
您可以在http://support.microsoft.com/kb/234067上阅读更多信息。他们谈论禁用缓存,但这违背了目的并降低了效率。
在 PHP 中,指令是
header ("cache-control: must-revalidate");