在浏览器中访问www.hongxin.com时,发生了什么

版权声明:----------转载请注明出处---------- https://blog.csdn.net/Zhang_hongxin/article/details/81705594

    当我们在浏览器地址栏中输入如www.baidu.com时,到底发生了什么?我们直观感受是返回了一个页面,但其中的具体细节是什么呢?

    在介绍这个过程之前,我们先把这个过程中所需要的了解的知识点学习一下。

URL(统一资源定位符)

    我们熟知的url如www.taobao.com,它的全称是统一资源定位符。

DNS(域名解析器)

    有Local DNS Server(本地DNS服务器,LDNS)、ROOT DNS Server(互联网根DNS服务器)、gTLD Server(国际顶级域名服务器如 .com、.cn、.vip)。

Name Server域名服务器

    负责查询存储的域名与ip地址的映射关系表。

域名解析

                         

    ①当我们访问www.baidu.com时,首先浏览器会检查缓存中是否存在这个域名解析过后的ip地址,如果存在,则解析过程直接结束。但是,浏览器的缓存大小时有限的,缓存的时间也是有限的,因为当所访问的域名的ip地址发生改变时,如果浏览器缓存没有刷新,则可能导致该域名无法访问。当然时间如果过短,就会导致用户每次访问都会刷新浏览器缓存。

    ②当浏览器缓存中不存在该域名解析后的ip地址时,浏览器会检查系统hosts文件中是否有该域名解析后的ip地址。在Windows系统中,它的位置在 “C:Windows\System32\drivers\etc\hosts”,如果你在这里配置了url和对应的ip地址,浏览器就会优先使用这个ip地址。但是这样,给用户带来了一定的不安全性,某些病毒可以修改hosts文件,导致某些域名被挟持。所以Windows 7 中将这个文件设置成了只读。

    ③当本地hosts文件中也不能查找到给域名所对应的ip地址,则浏览器将会向本地域名服务器(Local DNS Sever)发送请求。在我们的网络配置中都会有“DNS服务器地址”这一项。一般有你的网络供应商提供,如电信、联通。本地域名服务器一般都会缓存域名解析结果,约80%的域名解析到这里就结束了。

    ④如果本地域名解析器没有得到域名解析后的ip地址,则LDNS会向ROOT Server请求解析,根域名服务器向LDNS返回一个gTLD Server地址。

    ⑤LDNS 再向gTLD发送请求,gTLD返回一个Name Server。

    ⑥LDNS再向Name Server发送请求,Name Server返回域名所对应的的ip地址,域名解析结束。

    域名解析的步骤远比上面的六步复杂,这里只是简单将过程介绍一下,如想继续深入学习,可再参阅相关书籍。

参考资料:《深入理解Java Web内幕》

猜你喜欢

转载自blog.csdn.net/Zhang_hongxin/article/details/81705594