304 和 200 的区别(来自磁盘缓存)
Difference of 304 and 200 (from disk cache)
nginx 版本:nginx/1.14.0 (Ubuntu)
正在研究如何处理浏览器缓存。
你能解释一下为什么在 html 的情况下浏览器向服务器发送请求,而在 css 的情况下没有吗?
换句话说,为什么在 html 的情况下我们有 304,而在 css 的情况下我们有 200(来自磁盘缓存)?
服务器没有向浏览器提供任何关于将其资源缓存多长时间的信息。 (也就是说,它不包括 Cache-Control
或 Expires
headers。)因此浏览器可以自由地提出自己的 启发式新鲜度 , 如 RFC 7234:
中所述
Since origin servers do not always provide explicit expiration times,
a cache MAY assign a heuristic expiration time when an explicit time
is not specified, employing algorithms that use other header field
values (such as the Last-Modified
time) to estimate a plausible
expiration time.
大概是浏览器分配给静态 CSS 资源的刷新时间比分配给 HTML 页面的刷新时间长。有道理。
如果您关心资源的缓存方式,答案很简单——使用适当的缓存提供明确的方向 headers。
nginx 版本:nginx/1.14.0 (Ubuntu)
正在研究如何处理浏览器缓存。
你能解释一下为什么在 html 的情况下浏览器向服务器发送请求,而在 css 的情况下没有吗?
换句话说,为什么在 html 的情况下我们有 304,而在 css 的情况下我们有 200(来自磁盘缓存)?
服务器没有向浏览器提供任何关于将其资源缓存多长时间的信息。 (也就是说,它不包括 Cache-Control
或 Expires
headers。)因此浏览器可以自由地提出自己的 启发式新鲜度 , 如 RFC 7234:
Since origin servers do not always provide explicit expiration times, a cache MAY assign a heuristic expiration time when an explicit time is not specified, employing algorithms that use other header field values (such as the
Last-Modified
time) to estimate a plausible expiration time.
大概是浏览器分配给静态 CSS 资源的刷新时间比分配给 HTML 页面的刷新时间长。有道理。
如果您关心资源的缓存方式,答案很简单——使用适当的缓存提供明确的方向 headers。