【发布时间】:2013-08-15 11:42:50
【问题描述】:
我知道这实际上是一个古老的东西,但我确实对它以及它在开始时应该如何工作有疑问。所以我至少得到了这四个可以发送回客户端的重要缓存头(Last-Modified、Cache-Control、Expires 和 ETag)
问题 2.2 的示例情况:
假设我有一些包含文章的网站。
每 15 分钟到 7 天可能会有一篇新文章。
所以我将Cache-Control 和Expires 设置为缓存15 分钟,以便客户端始终获得最新版本。
我现在对ETag和Last-Modified的看法:
我只是在里面放了一些内容的哈希值,如果If-None-Match == ETag,我可以向客户端发送304。
如果If-Modified-Since >= Last-Modified,我可以发送客户304。
问题
- 我需要
Cache-Control和Expires来支持所有浏览器吗? - 看起来
Cache-Control和Expires只是告诉我的浏览器内容应该在计算机上缓存多长时间,对吧?- 所以我只能使用
ETag和Last-Modified来确定我应该何时发送304对吧? - 所以我可以将
Cache-Control和Expires设置为永远,如果ETag或Last-Modified更改了它,只需向客户端发送新版本?- 因为这适用于我的浏览器,但它适用于所有浏览器吗?
- 所以我只能使用
- 我需要
ETag和Last-Modified来支持所有浏览器吗? -
Pragma看起来像另一个类似于Cache-Control的缓存头,哪些浏览器正在使用Pragma,我需要它吗?
【问题讨论】:
标签: http http-headers browser-cache