首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP缓存-控制

HTTP缓存-控制
EN

Stack Overflow用户
提问于 2011-01-22 11:19:22
回答 2查看 2.6K关注 0票数 0

我刚开始使用HTTP缓存,真的需要帮助.

  1. 我看到很多人在将XHR发送到服务器时设置了"Cache-Control"头。这样做的目的是什么?请求头也需要缓存吗?
  2. 我已经为XHR:Cache-Control max-age=30, must-revalidate设置了这个头,但是Firefox3.6.13在30秒后刷新(甚至强制刷新)时似乎不会重新验证文件。也没有访问-登录服务器。这是因为我还没有为Apache中的文件设置过期头吗?

来自Firebug日志:

响应头

日期:2011年1月22日09:59:21

最后修改清华,2011年1月20日09:05:11格林尼治时间

Etag "3e000000023ca7-20d-49a436e5b3413“

请求头

维持生命115

连接保持活力

内容类型应用程序/xml

缓存-控制最大年龄=30,must-revalidate

该文件已被修改,但Firefox甚至不执行条件get。Response DateLast-Modified根本不更新。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-22 12:15:01

服务器需要设置重新验证指令,而不是客户端。

源控制内容是否应该被缓存以及如何缓存,客户端决定是否遵守它。

必须重新验证只意味着发送一个head请求,如果etag不同,则资源将被刷新。对于大文件来说,这是一种非常普遍的做法,因为电子标签通常会在内容发生变化时发生变化。

然而,对于小文件,您可能根本不想有任何请求,而是更短的超时时间。那么必须重新验证是错误的。服务器负载及其对7kb图像的头请求所消耗的时间并不比服务整个映像少得多。

票数 1
EN

Stack Overflow用户

发布于 2011-02-03 00:02:54

客户端也可以发送缓存控制指令。请参阅:https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p6-cache-12#section-3.2

不幸的是,当XHR设置浏览器时,浏览器不会(还)遵守它们,但是介入代理缓存通常是这样的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4767502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档