如果存放在CDN上的资源过期了,CDN并不会主动回源,而是等用户过来访问资源才会触发回源。
那么CDN回源时都做了哪些行为呢?下面来测试揭晓。
首先将txt文件后缀的缓存时间改成30秒,这样txt文件在CDN上只缓存30秒就会过期,30秒过后用户再次访问就会触发回源。
在源站服务器上用tcpdump抓包(内容如下图),资源过期后触发回源,CDN过来的请求会携带If-Modified-Since,该请求头的作用是判断源站服务器的txt文件是否有更新。
如果源站服务器的txt文件的Last-Modified发生了变化,CDN则要求源站提供最新的txt文件,然后CDN将最新的txt文件返回给用户,并同时更新节点上的txt文件。
所以呢,Last-Modified头部还是很重要的,建议源站服务器务必返回该头部给CDN,如果源站服务器不返回Last-Modified
头部,CDN可能无法正常更新节点上的txt文件,从而导致用户会一直访问到旧的资源。