前端中的计算机网络

2018-10-14  本文已影响0人  酥枫

最近在秋招的面试中,发现自己计算机网络这一块比较薄弱,于是把前端中的计算机网络好好复习了一遍,现在分享给大家。
计算机网络比较复杂,内容也比较繁多,单单是TCP/IP协议族就有很多内容,从哪里说起呢?那我们就从一个URL说起好了。

URL全称是uniform resource location,统一资源定位符,用来表示从因特网上得到所需资源的位置和访问这些资源的方法,在这里,我们会遇到第一个问题,URL和URI有什么关系呢?简单来说,URI是uniform resource identifier,即统一资源标识符,可以把URL理解为URI的一个子集,我一般是这样理解的,就是URI相当于身份证,URL相当于身份证上的家庭住址,通常情况下描述或者指定一个资源时,URL和URI可以互换使用,两者具体区别详见这里

下面我们来看一下一个URL的格式是怎样的:

<协议名>://<域名|IP地址>:<端口号>/<带层次的文件路径><查询字符串><锚点>

http://www.example.com:80/dir/index.html/?uid=1&uname=tom#ch1

这样,我们就得到了一个完整的(绝对)URL。

有了URL了,下一步一般是做什么呢,一般来说,我们见到URL最多的地方,就是在浏览器的地址栏了,那么接下来,我们就以从在浏览器地址栏中输入URL到页面呈现出来这个过程,来说说中间涉及到的网络协议,其实“从输入URL到显示页面的过程”这是一个经常会遇到的面试题,完整地弄清楚需要涉及到很多东西,不只有网络方面的东西,还包括浏览器缓存、DOM解析、重排重绘等,详细得可以看看这几篇文章:

下面只讲这个过程中涉及到网络协议的部分。

  1. 第一步,解析域名,查找主机的IP地址
    1. 在浏览器地址栏中输入一个URL之后,有些浏览器本身就有对最近查询的一些域名到IP地址映射的缓存,如果有的话,这里直接就会省去接下来的DNS查询这一步,直接返回IP地址。
    2. 如果浏览器没有缓存域名到IP的映射,那么接下来,操作系统就会先查找计算机上的hosts文件是否有这个网址的映射关系,如果有就直接返回,完成域名解析。
    3. 如果hosts文件没有这个域名的映射,就会查找本地的DNS解析器缓存,如果有直接返回完成解析。
    4. 如果还是没有找到映射关系,那么计算机就会向TCP/IP参数中设置的首选DNS服务器(我们叫它本地DNS服务器,下面称本地DNS服务器)进行查询,本地DNS服务器往往是互联网供应商或者某个大学或者其他一个公司机构提供的,许多台计算机共用一个本地DNS服务器,例如你在大学用校园网,那么你们学校可能就共用一个本地DNS服务器。
      在本地DNS服务器接受到查询时,会先检查域名是否在本地配置区域资源中(也就是说检查要查询的域名是否也在同一个本地DNS服务器下),如果在就直接返回,完成解析,此解析具有权威性。
    5. 如果要查询的域名不在本地配置区域资源中,那么本地DNS服务器就会查看自己是否缓存了这个域名映射关系,如果有且没有过期,那么就直接返回,完成解析,此解析不具有权威性。
    6. 如果没有缓存,那么本地DNS服务器就会根据设置的是否转发(或者说是递归查询还是迭代查询)来进行查询。
上一篇下一篇

猜你喜欢

热点阅读