轻松理解HTTP缓存策略
上一篇文章我写了koa-static的源码解析,其中用到了HTTP
的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control
之类的。于是我就跟朋友讨论了一下HTTP
的缓存策略:
朋友说:“HTTP
里面控制缓存的头(header
)太多了,啥Cache-Control
,ETag
,Last-Modified
,一大堆,乱七八糟的,而且之间逻辑关系不强,要掌握基本靠背!”
我有点惊讶:“为什么要去背这个呢?所有的技术都是为了解决问题而存在的,不了解问题而去单纯的学习技术,去,背,去,死记,确实很枯燥,而且效果不好。HTTP
缓存策略只是为了解决客户端和服务端信息不对称的问题而存在的,客户端为了加快速度会缓存部分资源,但是下次请求时,客户端不知道这个资源有没有更新,服务端也不知道客户端缓存的是哪个版本,不知道该不该再返回资源,其实就是一个信息同步问题,HTTP
缓存策略就是来解决这个问题的。如果我们跳出这种纯粹的技术思维,我们会发现生活中这种信息同步问题也很常见。而我们解决这些问题的思路很多时候都是司空见惯了,如果从这个角度来说,这个问题就很好理解!”
于是我给他讲了一个我小时候租光碟看奥特曼的故事。…
近期评论