美文网首页
输入URL后浏览器侧处理之向DNS查询域名对应的IP地址

输入URL后浏览器侧处理之向DNS查询域名对应的IP地址

作者: robot_test_boy | 来源:发表于2022-06-28 00:08 被阅读0次

    浏览器侧的处理流程包含输入URL,到生成请求消息,再到域名解析,最后委托操作系统发出消息。本文仅总结域名解析的过程


    输入URL后,浏览器会委托操作系统向Web服务器发送请求,但浏览器必须告诉操作系统接收方的IP地址才行。如果输入以ip地址方式访问的URL,则直接向此IP地址发送消息;如果输入以域名方式访问的URL,则浏览器需要向DNS查询域名对应的IP地址。

    备注:URL中的域名相对多个IP地址来说容易记住,但是数据传输时必须将域名转换为IP地址。这是为什么呢?原因有2:

    1) 数据传输大小和传输时间消耗:IP地址的长度为32比特(4字节),相对地,域名最短要几十个字节,最长甚至达到255字节。使用IP地址只需要处理4字节的数字,而域名则需要处理几十个到255个字节的字符,这增加了路由器的负担,传送数据也会花费更长的时间。

    2) 域名长度不定造成处理复杂度高:域名并不仅是长,而且其长度是不固定的。处理长度不固定的数据比处理长度固定的数据要复杂,这也是造成效率低下的重要原因之一。

    1. 通过Socket库查询IP地址

    向DNS服务器发出查询,即向DNS服务器发送查询消息,并接收服务器返回的响应消息。对于DNS服务器,计算机有相应的DNS客户端,这部分也称为DNS解析器。通过DNS查询IP地址的操作称为域名解析,因此负责执行解析(resolution)操作的就叫解析器(resolver)了。

    库是一堆通用程序组件的集合,其他的应用程序都需要使用其中的组件。库有很多好处。首先,使用现成的组件搭建应用程序可以节省编程工作量;其次,多个程序使用相同的组件可以实现程序的标准化。Socket库也是一种库,其中包含的程序组件可以让其他的应用程序调用操作系统的网络功能,而解析器是这个库中的其中一种程序组件。

    解析器内部工作原理如下图。

    向DNS服务器发送消息时,也需要知道DNS服务器的IP地址。这个IP地址作为TCP/IP的一个设置项目事先设置好的,不需要再去查询了。Windows中的设置如图

    DNS服务器收到消息后,会从域名与IP地址的对照表中找相应的记录,并返回IP地址。

    本文摘取自周自恒翻译的户根勤编写的《网络是怎样连接的》。

    相关文章

      网友评论

          本文标题:输入URL后浏览器侧处理之向DNS查询域名对应的IP地址

          本文链接:https://www.haomeiwen.com/subject/cnkivrtx.html