这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战;
写在前面
这是浏览器渲染篇的第一步,DNS域名解析,域名系统DNS(Domain Name System) 是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。这篇文章我们主要聊一聊DNS是如何解析域名的。
因特网域名结构
在了解如何解析域名之前,我们还需要来了解一下域名结构是怎样的,比如www.juejin.cn这个网址,其中cn是顶级域名,juejin是二级域名,www是三级域名。
级别最低的域名写在最左边,而级别最高的字符写在最右边。 由多个标号组成的完整域名总共不超过255个字符。
域名解析规则
当我们知道因特网域名结构后,就可以来了解域名解析的规则了。
互联网中有一个根域名服务器,它是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
浏览器会先向根DNS服务器发起请求,来获取顶级域名服务器的ip地址,拿到顶级域名服务器地址后再向它发起请求,拿到次域名服务器ip地址,再根据次域名服务器拿到主机名(也就是三级域名)的IP地址。
通过这样的递归查找的过程,浏览器就能准确的获取到所请求资源的IP地址了。
DNS缓存
不知道你有没有发现,当我们打开过一个页面后,再打开好像会比第一次快一点点?这其中少不了一些静态资源的缓存,当然,这里也少不了DNS的缓存,浏览器在获取网站域名的实际IP地址后会对其IP进行缓存,以用来减少后续网络请求的损耗。
总结
其实DNS寻址的过程就好比,比如我们想去找某家公司的一位名叫张三的前端工程师,我们要先到这个公司去,然后询问了解到张三所在的部门,再到部门去找到前端部,再找到张三。
当前,找到张三后你去打了一杯水,再回到办公室可以不通过公司一步步递归来找到张三,这就是DNS缓存了。
今天我们简单了解了浏览器渲染篇中DNS如何解析域名的环节,后面我们再来一同学习如何建立TCP连接、http连接...
前端漫漫长途,我们都在路上,希望可以和小伙伴们一起交流,一起进步。持续更新ing.....