ESI: Edge Side Includes ,传统的CDN缓存是以访问url为单位来计算缓存策略的,最简单的比如css,js等后缀的url可以设置的比较长的缓存时间,这样用户访问某个cdn节点的时候,cdn服务器可以不用向后端数据服务器发送请求,而直接将自身存储的缓存返还给用户。但某些频繁更新的页面比如首页index,就不能使用静态文件的缓存策略,比如必须不缓存、或者缓存很短的时间,或者用purge机制,当后端数据更新的时候主动通知CDN前端清除旧缓存等等。但任何一个页面都有一些部分是与用户个性化无关的,比如这个帖子,有用户,有回帖,但还有很多部分是不变的,ESI的设计目的之一就是实现对一个页面的局部缓存。
Saint Mode:当反代失败的时候怎么办呢,返回一个504给客户吗?现在的缓存服务器比如流行的varnish提供了更多选项,比如saint mode的作用就是当CDN前端无法获取后端数据,很可能比如现在后端服务器被攻击了,流量超过能应对的极限了的时候,那么CDN前端可以被设计成一段时间内不再像后端数据服务器发起请求,比如出现504了就在5分钟内不连接后端,而返还给用户甚至是过期的缓存,让网站看上去还是“在线”。