DNS缓存
-
DNS解析:域名----->IP地址。
-
有DNS的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。
DNS查询过程如下:
- 首先搜索浏览器自身的DNS缓存,如果存在,则域名解析到此完成。
- 如果没有找到,那么会尝试读取操作系统的hosts文件看是否存在对应的映射关系,如果存在,则域名解析到此完成。
- 如果本地hosts文件不存在映射关系,则查找本地DNS服务器,如果存在,域名到此解析完成。
- 如果本地DNS服务器还没找到的话,它就会向根服务器发出请求,进行递归查询。
CDN 缓存
- 内容分发网络。
- CDN-->缓存服务器的承包商,在最近的CDN节点,最短的请求时间,拿到资源。
- 起到分流作用,减轻服务器负载压力
- 例子:用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。
- CDN缓存:在浏览器本地缓存失效后,浏览器会向CDN边缘节点发起请求。类似浏览器缓存,CDN边缘节点也存在着一套缓存机制。CDN边缘节点缓存策略因服务商不同而不同。
- 当浏览器向CDN节点请求数据时:CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向服务器发出回源请求,从服务器拉取最新数据,更新本地缓存,并将最新数据返回给客户端。
CDN的基本工作过程:
-
用户在自己的浏览器中输入要访问的网站域名。
-
浏览器向本地DNS服务器请求对该域名的解析。
-
如果缓存有这个域名的解析结果,则直接响应用户的解析请求。
-
如果没有关于这个域名的解析结果的缓存,则以递归方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器。
-
浏览器得到域名解析结果,就是该域名相应的服务设备的IP地址。
-
浏览器向服务器请求内容。
-
服务器将用户请求内容传送给浏览器。
转自作者:null仔
原文链接:https://juejin.cn/post/6844903764566999054