互联网是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接。当用户在浏览器中输入 www.baidu.com时,DNS会将域名解析成IP地址,然后再去匹配对应的IP地址。
步骤一:当在浏览器中输入域名按下回车键后,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址。如果缓存有,解析结束。浏览器缓存域名在大小和时间上都是有限制的。缓存时间可由TTL属性来设置缓存时间太长太短都不好,太长,会导致IP解析有变化,会导致域名不能正常解析,部分用户无法访问网站。缓存时间太短,用户每次都需要重新解析一次域名。
步骤二:如果用户的浏览器中缓存没有,浏览器会查找操作系统中是否有这个域名对应的DNS解析结果。其实操作系统中也会有一个域名解析的过程,在windows中可以通过c:\\windows\system32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。(黑客劫持域名)步骤一和步骤二都是由本机完成的。
步骤三:当机无法完成域名解析,就会真正请求域名服务器来解析这个域名了。我们怎样知道域名服务器?网络配置中都会有“DNS服务器地址”操作系统会把这个域名发送到设置中的LDNS,也就是本地的域名服务器。DNS通常都会提供给你本地互联网接入的一个DNS服务器。比如你在学校,那么这个DNS服务器一定在你们学校。WIndows中可由ipconfig查询这个地址。
步骤四:如果LDNS仍然没有解析到,就直接到Root Service域名解析器请求解析
步骤五:根域名服务器返回给本地域名服务器一个所查询余的主域名服务器(gTLDServer)地址。gTLD是国际顶级域名服务器,如:.com/.cn/.org等,全球只有13台左右。
步骤六:本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求
步骤七:接收请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器(如你的域名供应商)
步骤八:Name Server域名服务器会查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器
步骤九:返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间有TTL值控制。
步骤十:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。
在实际的DNS解析过程中,可能还有更多的步骤,如Name Server也可能有多级,或者有一个GTM来负载均衡控制,都可能影响域名解析的过程。更多内容,可参考以下数据
本文参考书籍:《深入分析Java Web技术内幕》
原文链接:https://blog.csdn.net/weixin_39059334/article/details/78236797
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END