我是 HTTP 缓存新手,确实需要一些帮助...
我看到很多人在向服务器发送 XHR 时设置了
"Cache-Control"
header 。 这样做的目的是什么?请求头也需要缓存吗?我已经为 XHR 设置了此 header :
Cache-Control max-age=30, Must-revalidate
,但是当我在 30 秒后刷新(甚至强制刷新)时,Firefox 3.6.13 似乎不会重新验证文件。服务器也没有访问登录。这是因为我没有为 Apache 中的文件设置过期 header 吗?来自 Firebug 日志:
Response Headers
Date Sat, 22 Jan 2011 09:59:21 GMT
Last-Modified Thu, 20 Jan 2011 09:05:11 GMT
Etag "3e000000023ca7-20d-49a436e5b3413"Request Headers
Keep-Alive 115
Connection keep-alive
Content-Type application/xml
Cache-Control max-age=30, must-revalidate文件已被修改,但 Firefox 甚至不执行条件获取。
响应日期
和Last-Modified
根本不更新。
最佳答案
客户端也可以发送缓存控制指令。看: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p6-cache-12#section-3.2
不幸的是,浏览器(还)不会在 XHR 设置时尊重它们,但干预代理缓存通常会。
关于javascript - HTTP 缓存控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767502/