Expires | Cache-Control
是控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只是Cache-Control比Expires可以控制的多一些, 而且Cache-Control会重写Expires的规则。
Last-Modified/If-Modified-Since | ETag/If-None-Match
Last-Modified
服务器上文件上次修改的时间,用来比对服务器端文件是否有修改
服务器返回的response的headers中包含; If-Modified-Since--浏览器向服务器发送的request的headers中包含。
ETag
服务器上被请求变量的实体标记,用来比对服务器端文件是否有修改
服务器返回的response的headers中包含; If-None-Match--浏览器向服务器发送的request的headers中包含。
原理
是浏览器发送请求到服务器后判断文件是否 已经修改过,如果没有修改过就只发送一个304回给浏览器,告诉浏览器直接从自己本地的缓存取数据;如果修改过那就整个数据重新发给浏览器。
参考
Http头介绍:Expires,Cache-Control,Last-Modified,ETag
http://www.51testing.com/html/28/116228-238337.html