详见:
使用 HTTP 缓存:Etag, Last-Modified 与 Cache-Control
稍作总结:
整个 Web 系统架构在 HTTP 协议 之上, 利用 HTTP 的缓存机制不仅可以极大地减少服务器负载, 更重要的是加速页面的载入,以及减少用户的流量消耗。 快速到达和易于访问是 Web 与生俱来的特性, 其缓存机制也早已被服务器和浏览器厂商广泛地实现。Web 服务器(比如 Tomcat、Apache、Virgo)或服务器端框架(比如 Django、Express.js) 都会实现 HTTP 缓存机制, 涉及到的 HTTP 头字段注意包括如下:
Cache-Control , Last-Modified , If-Modified-Since , Etag , If-None-Match
缓存设置会导致资源有效性和一致性问题。实践经验:
谨慎地使用过期时间,最好配合 MD5 一起使用。
总是启用条件请求,比如 Etag 或 Last-Modified。
文件服务采用 Last-Modified,动态内容采用 Etag。
分离经常变化的部分,也会提高缓存的命中率。
浏览器刷新页面:F5或地址栏输入地址会尝试根据缓存设置使用缓存;CTRL + F5不适用缓存全部从服务端获取最新资源。