Day14
- 缓存有效期
缓存在有效期之内时,缓存的资源才是有效可用的。而标识缓存有效期的字段是 Expired 和 max-age;
在HTTP/1.0 中,有效期是通过 Expires 标头来指定的。但由于Expired指定的有效期是某个具体的时间,而这个时间容易收到系统时钟的影响而产生有效期判定偏差。因此在HTTP/1.1中,有效期通过max-age指定。max-age指定的是从响应开始的缓存有效期,是指经过时间。
虽然HTTP/1.1已经成为了被广泛应用的协议版本,但有时候开发人员为了兼容HTTP/1.0的设置会同时设置Expired和Cache-control中的max-age声明,当两者均有效的时候,优先采用max-age来进行有效期计算。
- 缓存破坏
虽然在有效期内js代码可能会变化,而该缓存响应也变得不可使用,但缓存的静态资源也能通过别的方式重新链接。这种方式被称为“缓存破坏”,即每次静态资源内容变化时都改变请求该资源的URL。
通常开发时会使用包含基于版本号或哈希值的更改部分的 URL 来提供 JavaScript 和 CSS,这样保证了在更新资源时 URL 发生变化,缓存将不会再次被重用。
- 缓存有效期
缓存在有效期之内时,缓存的资源才是有效可用的。而标识缓存有效期的字段是 Expired 和 max-age;
在HTTP/1.0 中,有效期是通过 Expires 标头来指定的。但由于Expired指定的有效期是某个具体的时间,而这个时间容易收到系统时钟的影响而产生有效期判定偏差。因此在HTTP/1.1中,有效期通过max-age指定。max-age指定的是从响应开始的缓存有效期,是指经过时间。
虽然HTTP/1.1已经成为了被广泛应用的协议版本,但有时候开发人员为了兼容HTTP/1.0的设置会同时设置Expired和Cache-control中的max-age声明,当两者均有效的时候,优先采用max-age来进行有效期计算。
- 缓存破坏
虽然在有效期内js代码可能会变化,而该缓存响应也变得不可使用,但缓存的静态资源也能通过别的方式重新链接。这种方式被称为“缓存破坏”,即每次静态资源内容变化时都改变请求该资源的URL。
通常开发时会使用包含基于版本号或哈希值的更改部分的 URL 来提供 JavaScript 和 CSS,这样保证了在更新资源时 URL 发生变化,缓存将不会再次被重用。
展开
评论
点赞