最近碰到一个神奇的问题: 我把云服务器上的图片通通压缩到200KB一下,但打开网页network里显示同一张图片居然800多KB,路径什么都一样,我确认就是200KB那张图片。
前提:我已经清理了浏览器缓存,确保不是浏览器遗留图片数据。
后来发现是cdn缓存导致,相当于云服务器上有缓存文件,网页在读取图片的时候先去的缓存文件读出来,没有去服务器上读取无覆盖的新图片。
一、CDN是什么?
http是浏览器缓存, cdn是服务器缓存
例子:cdn就是代理。厂家给商家发货,你从商家买货,商家就是cdn。
二、CDN怎么缓存?
和Http类似,客户端请求数据时,先从本地缓存查找,如果被请求数据没有过期,拿过来用,如果过期,就向CDN边缘节点发起请求。CDN便会检测被请求的数据是否过期,如果没有过期,就返回数据给客户端,如果过期,CDN再向源站发送请求获取新数据。和买家买货,卖家没货,卖家再进货一个道理。
CDN边缘节点缓存机制,一般都遵守http标准协议,通过http响应头中的Cache-Control和max-age的字段来设置CDN边缘节点的数据缓存时间。
参考文章:https://www.jianshu.com/p/b5188d6dc2b3.