没有使用CDN的情况
访问的过程如图所示:
![73b1f130e09d04c89298c5ef6d7a640a.png](https://img-blog.csdnimg.cn/img_convert/73b1f130e09d04c89298c5ef6d7a640a.png)
1.用户在自己的浏览器输入要访问的网站域名。
2.浏览器向本地DNS服务器请求对应域名的解析
3.本地DNS服务器中如果缓存有此域名的解析结果,则直接向用户相应解析结果,如果没有缓存此域名的解析结果,则以递归的方式向整体DNS系统请求解析,获得结果后应答浏览器
4.浏览器得到域名解析的结果,就是该域名服务器的IP地址,浏览器向此IP发出请求
5.服务端响应请求,把相应的数据传给浏览器
使用CDN时的情况
![633e368ab40a1256f5cb778c41808522.png](https://img-blog.csdnimg.cn/img_convert/633e368ab40a1256f5cb778c41808522.png)
- 当终端用户(北京)向www.a.com下的某资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
- LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
- 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
- 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
- LDNS获取DNS返回的解析IP地址。
- 用户可以获取解析IP地址。
- 用户向获取的IP地址发起对该资源的访问请求。如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。