200 (from cache) vs 304

from disk cache
from memory cache

强校验器与弱校验器。

ETags,作为缓存的一种强校验器。
Last-Modified 响应头可以作为一种弱校验器。

如果没有包含校验器,并且缓存没有过期。就会有200 (from disk cache / from memory cache)情况,这样浏览可以更快的获取到资源,没有网络开销。

如果有校验器,
就始终有网路开销。在缓存没有失效的情况下服务器会返回 304.

使用情况

在改动不频繁的情况下可以不使用校验器。像博客系统的 js,css 资源。图片

在改动较频繁的情况下,根据情况使用强弱校验器。或者在 url 后面加入版本号,不使用校验器。

缓存判断寻找顺序

Cache-control: max-age=N =》 Expires: =》Last-Modified:

参考

http://div.io/topic/854
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ
https://segmentfault.com/a/1190000009569701