一直对DNS、CDN的原理不太了解,学过又忘,今天再次学习了下,并记录下来。
DNS的概念:域名解析系统
顾名思义,是用来将网站域名解析成IP的地址的一个服务器。
如果一个人要上网,他想要访问百度的网站,对于全是数字的IP地址而言是十分难记的,而域名同我们日常的拼音、英文类似,就比较好记。但电脑是以二进制工作的机器,便利于人类记忆的域名对电脑来说是无法直接识别的,所以这时就需要一个中间人,也就是DNS,它的作用是将我们人类记住的网站域名,转化成电脑能够识别的网站IP。
在域名转化为IP的这个过程,虽然看似简单,但其中还需要很多步骤来一一实现。
做饭的过程才是整个流程中最关键的步骤。
当你在浏览器搜索框输入:www.baidu.com这个域名时,DNS就开始工作了。
1.在你打开浏览器,输入一串网站的域名,也就是www.baidu.com后,浏览器首先会从之前缓存的历史记录中查找,这也是域名解析的最近步骤。
类似于你做一件事情,脑海会首先思索之前有没有做过相同的事情,以此来寻求之前的经验。(无论电脑还是人的这个想法,都是为了省力,节约时间)
2.如果上一步,也就是浏览器中没有对百度域名进行解析的缓存记录,那浏览器会进入下一个步骤,访问本地Host文件,Host文件中写有URL与IP的映射关系。
3.如果本地Host文件中,也不存在百度域名与IP对应的映射关系,那浏览器继续向后寻找,来到本地域名服务器Local DNS,通过本地运营商来确定域名与IP的对应关系。
不同的局域网中,本地域名服务器的位置与运营商不同,比如学校的DNS服务器,设置在学校里(校园网),小区的DNS服务器由运营商提供(个人办卡连通网线)。
4.本地域名服务器也找不到域名与IP的对应关系,浏览器就进入了根域名服务器。
根域名服务器会根据浏览器提供的域名,在它所包含的顶级域名中进行查找(g(国际)、cc(国家和地区)、New gTLD(新的)),
例如百度的.com就是顶级域名下,属于国际顶级域名分类。顶级域名在查询到域名分类后,将结果返回给本地域名。
5.本地域名再根据顶级域名返回的这个结果,在顶级域名三大分类中的国际顶级域名中去查找,最后的查询就是www.baidu.com这个网站注册的域名服务器。
最后用日常的做菜来加深一下记忆:
你想吃可乐鸡翅(浏览百度网页)——步骤1:先想想自己会不会做可乐鸡翅(搜索本地历史缓存)——步骤2:发现自己不会,问对象会不会做可乐鸡翅(没有历史缓存,访问本地Host文件)——步骤3:对象也不会做可乐鸡翅,出门在小区饭店寻找有没有可乐鸡翅卖(本地Host文件没有,在本地域名服务器上寻找)——步骤4:小区也没有可乐鸡翅,在整个市里寻找(本地域名没有,在根域名上寻找)——步骤5:终于在市里的某个饭店中找到了心心念念的可乐鸡翅,立马使用地图出发去对应的饭店吃可乐鸡翅(根域名服务器返回请求的域名信息给本地域名)