http 缓存机制
-
http 缓存机制,看这篇文章即可:https://www.cnblogs.com/slly/p/6732749.html
-
优先级从高到低分别是Pragma -> Cache-Control -> Expires
-
需要注意的是,响应报文中Expires所定义的缓存时间是相对服务器上的时间而言的,其定义的是资源“失效时刻”。
-
RFC 规定,如果 ETag 和 Last-Modified 都有,则必须一次性都发给服务器,没有优先级。
同时传入服务器时,服务器可以根据自己的缓存机制的需要,选择ETag或者是Last-Modified来做缓存判断的依据(重新给浏览器资源还是让浏览器使用缓存资源),甚至可以两个同时参考。 -
强制刷新时,Chrome 51 中会包含两个头部信息, 作用就是让中间节点(比如Proxy)的Cache对这个请求也失效,这样返回的绝对是新鲜的资源。
Cache-Control: no-cache
Pragma: no-cache
-
Last-Modified使用文件最后修改时间作为文件标识值,它无法处理文件一秒内多次修改的情况,而且只要文件修改了哪怕文件实质内容没有修改,也会重新返回资源内容;
ETag作为“被请求变量的实体值”,其完全可以解决Last-Modified的这个问题,但是其计算过程需要耗费服务器资源。