CDN 缓存原理

启用CDN缓存后浏览器访问的全过程:

1.用户输入URL,浏览器将解析过后的域名发给DNS服务器

2.CDN返回该域名对应的CNAME,此时浏览器需要再次对获得的CNAME进行解析,才能得到CDN缓存服务器的IP地址。在此过程中全局负载均衡DNS解析服务器会将用户的访问请求定位到离用户最近、负载最轻的CDN缓存服务器上。这种技术也被称为“DNS重定向”,DNS服务器不是为每个请求返回相同的IP地址,比如在悉尼的一个客户请求解析www.cdn.com,DNS服务器根据地理位置,计算出距离这个用户最近的CDN服务器,于是返回一个悉尼CDN节点的IP地址。这种方法也不一定是最优的,因为地理位置上最近的两个点,延迟可能反而很高。还有一种方法是通过估计节点间的样本延迟,具体原理我也不了解。

3.再次解析后,浏览器得到CDN缓存服务器的实际IP地址,向缓存服务器发起请求。

4.缓存服务器根据浏览器提供的域名,通过内部DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向该服务器发起访问请求。

5.缓存服务器拿到数据后,一方面将数据发回浏览器,另一方面进行本地保存,以备后用。之后再次访问,数据将从CDN缓存服务器中被返回。CDN不会永久保存数据,可以设置CDN的刷新频率,来达到数据的更新。

6.浏览器得到由缓存服务器发回的数据,并将其显示出来。至此,完成整个域名访问的过程。