发送带有如下If-Modified-Since
标头的请求:
WinJS.xhr({
url: "http://www.microsoft.com",
headers: {
"If-Modified-Since": "Mon, 27 Mar 1972 00:00:00 GMT"
} })
.done(function complete(result) {
// Report download.
xhrDiv.innerText = "Downloaded the page";
xhrDiv.style.backgroundColor = "#00FF00";
});
链接关闭页面,可在此处If-Modified-Since
找到其他标题。重要的是标题。此处的其他缓存指令包括:CACHE-CONTROL
Cache-Control = "Cache-Control" ":" 1#cache-directive
cache-directive = cache-request-directive
| cache-response-directive
cache-request-directive =
"no-cache" ; Section 14.9.1
| "no-store" ; Section 14.9.2
| "max-age" "=" delta-seconds ; Section 14.9.3, 14.9.4
| "max-stale" [ "=" delta-seconds ] ; Section 14.9.3
| "min-fresh" "=" delta-seconds ; Section 14.9.3
| "no-transform" ; Section 14.9.5
| "only-if-cached" ; Section 14.9.4
| cache-extension ; Section 14.9.6
cache-response-directive =
"public" ; Section 14.9.1
| "private" [ "=" <"> 1#field-name <"> ] ; Section 14.9.1
| "no-cache" [ "=" <"> 1#field-name <"> ]; Section 14.9.1
| "no-store" ; Section 14.9.2
| "no-transform" ; Section 14.9.5
| "must-revalidate" ; Section 14.9.4
| "proxy-revalidate" ; Section 14.9.4
| "max-age" "=" delta-seconds ; Section 14.9.3
| "s-maxage" "=" delta-seconds ; Section 14.9.3
| cache-extension ; Section 14.9.6
从这里:
有时,用户代理可能希望或需要坚持让缓存重新验证其与源服务器的缓存条目(而不仅仅是沿着通往源服务器的路径的下一个缓存),或者从源服务器重新加载其缓存条目。如果缓存或源服务器高估了缓存响应的到期时间,则可能需要端到端重新验证。如果缓存条目由于某种原因已损坏,则可能需要端到端重新加载。
和
特定的端到端重新验证
该请求包括一个“max-age=0”缓存控制指令,该指令强制每个缓存沿着到源服务器的路径重新验证其自己的条目(如果有的话)与下一个缓存或服务器。初始请求包括一个带有客户端当前验证器的缓存验证条件。