一、没有 CDN
当用户访问一个网站时,如果没有 CDN,dns解析过程是这样的:
1.浏览器要将域名解析为 IP 地址(也就是浏览器缓存、系统缓存、路由器缓存都没有的情况),所以先向本地 DNS 发出请求。
2.本地 DNS 依次向根服务器、顶级域名服务器、二级域名服务器、三级域名服务器发出请求,得到网站服务器的 IP 地址。
3.本地 DNS 将 IP 地址发回给浏览器,浏览器向网站服务器 IP 地址发出请求并得到资源。
二、有CDN
如果用户访问的网站部署了 CDN,过程是这样的:
1.浏览器要将域名解析为 IP 地址,所以先向本地 DNS 发出请求。
2.本地 DNS 依次向根服务器、顶级域名服务器、二级域名服务器、三级域名服务器发出请求,得到全局负载均衡系统(GSLB)的 IP 地址。
3.本地 DNS 再向 GSLB 发出请求,GSLB 可以根据本地 DNS 的 IP 地址判断用户的位置,筛选出距离用户较近的本地负载均衡系统(SLB),并将该 SLB 的 IP 地址作为结果返回给本地 DNS。
4.本地 DNS 将 SLB 的 IP 地址发回给浏览器,浏览器向 SLB 发出请求。
5.SLB 根据浏览器请求的资源和地址,选出最优的缓存服务器发回给浏览器。
6.浏览器再重定向到缓存服务器。
7.如果缓存服务器有浏览器需要的资源,就将资源发回给浏览器。
8.如果没有,就向源服务器请求资源,再发给浏览器并缓存在本地。