# http-cache_node **Repository Path**: jeszhang-studty/http-cache-node ## Basic Information - **Project Name**: http-cache_node - **Description**: node + koa 简单实践强缓存、协商缓存 详情看README.md - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-09 - **Last Updated**: 2023-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, Koa ## README # http 缓存 终端运行命令 `npx nodemon index` 即可 > 参考文献 https://juejin.cn/post/7065895592613904392#heading-8 ## http 缓存种类 --- **HTTP 缓存常见的有两类:** - 强缓存:可以由这两个字段其中一个决定 expires cache-control(优先级更高) > 其实 `cache-control` 跟 `expires`效果差不多,只不过这两个字段设置的值不一样而已,前者设置的是 **`秒数`**,后者设置的是`毫秒数` - 协商缓存:可以由这两对字段中的一对决定 Last-Modified,If-Modified-Since Etag,If-None-Match(优先级更高) > 与`强缓存`不同的是,`强缓存`是在时效时间内,不走服务端,只走本地缓存;而`协商缓存`是要走服务端的,如果请求某个资源,去请求服务端时,发现`命中缓存`则返回 304,否则返回所请求的资源 其实 `Etag,If-None-Match` 跟 `Last-Modified,If-Modified-Since` 大体一样,区别在于: - 后者是对比资源最后一次修改时间,来确定资源是否修改了 - 前者是对比资源内容,来确定资源是否修改