【深入分析JavaWeb】-DNS域名解析

        互联网都是通过URL来发布和请求资源的,而URL(Uniform Resource Locator)中的域名需要解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴.在平常上网的时候,可能感觉不到DNS解析,但是一旦DNS解析出错,可能会导致非常严重的互联网灾难.

DNS域名解析过程:



DNS域名解析过程:

当用户在浏览器中输入www.baidu.com时,DNS解析将会有10个步骤.

第一步:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束.

第二步:如果用户的浏览器中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果.

        操作系统有一个域名解析的过程,在windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任意域名解析到任何能够访问的IP地址.如果你这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址.当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的时效时间和缓存的空间大小控制的.

第三步:在我们的网络配置中都会有"DNS服务器地址"这一项,这个地址就用于解决前面所说的如果两个过程无法解析时要怎么办,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器.

例如:如果你是在学校连入互联网,你用的就是学校的DNS服务器.可以通过ipconfig这个命令查看DNS地址.



第四步:如果LDNS仍然没有命中,就直接到Root Server(根服务器)域名服务器请求解析.

第五步:根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD server) 地址.gTLD是国际顶级域名服务器,如com,cn,org等.

第六步:本地域名服务器(Local DNS Server)再向上一步返回的gTLD(通用顶级域)服务器发送请求.

第七步:接受请求的gTLD服务器查找并返回此域名对应的Name server域名服务器的地址,这个Name Server通常就是你注册的域名服务器.

第八步:NameServer域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNSserver域名服务器.

第九步:返回该域名对应的IP和TTL的值,LocalDNS Server会缓存这个域名和IP对应关系,缓存时间由TTL值控制.

第十步:把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程结束.

跟踪域名解析过程

在linux和windows下都可以通过nslookup命令来查询域名的解析结果.

清除缓存的域名

        DNS域名解析后会缓存解析结果,主要有两个地方缓存结果,一个是本地的DNS server,一个是用户的本地机器.在windows下可以在命令行模式下执行ipconfig/flushdns命令来刷新缓存.


          深入web请求过程之DNS域名解析,首先要了解DNS域名解析的过程,了解一些关于DNS的命令.
posted @ 2017-02-19 21:16  陈晓婵  阅读(537)  评论(0编辑  收藏  举报