HTTP 缓存机制一二三【彩民之家高手论坛】

2019-10-13 04:26 来源:未知

实际应用

回到实际应用上来,首先要明确哪些内容适合被缓存哪些不适合。

考虑缓存的内容:

  • css样式文件
  • js文件
  • logo、图标
  • html文件
  • 可以下载的内容

一些不应该被缓存的内容:

  • 业务敏感的 GET 请求

可缓存的内容又分为几种不同的情况:

不经常改变的文件:

给 max-age 设置一个较大的值,一般设置 max-age=31536000

比如引入的一些第三方文件、打包出来的带有 hash 后缀 css、js 文件。一般来说文件内容改变了,会更新版本号、hash 值,相当于请求另一个文件。

标准中规定 max-age 的值最大不超过一年,所以设成 max-age=31536000。至于过期内容,缓存区会将一段时间没有使用的文件删除掉。

有看到用对话的形式来描述这个过程,便仿照着试图更清晰地解释:

彩民之家高手论坛 1彩民之家高手论坛 2

可能经常需要变动的文件:

Cache-Control: no-cache / max-age=0

比如入口 index.html 文件、文件内容改变但名称不变的资源。选择 ETag 或 Last-Modified 来做验证,在使用缓存资源之前一定会去服务器端做验证,命中缓存时会比第一种情况慢一点点,毕竟还要发请求进行通信。

彩民之家高手论坛 3彩民之家高手论坛 4

注意: 这里只描述了最基本的思路,实际使用 HTTP 缓存需要后端配合配置,具体情况具体对待,而且各方的实现并不一定完全按照标准来的,踩踩坑更健康

TAG标签: HTML5 HTTP/TCP
版权声明:本文由彩民之家高手论坛发布于前端知识,转载请注明出处:HTTP 缓存机制一二三【彩民之家高手论坛】