DNS解析简介

   DNS解析可以简单理解为:对用户的请求域名的IP解析。

   在内网参与过web开发的同学(例如Java Web)应该知道,假如一个人用Tomcat之类的中间件将自己的服务启动后, 其他人想要访问他的服务,就需要知道他的ip地址,然后在浏览器地址栏输入地址、端口号、服务的名字等等后,就可以访问他的服务。那么问题是,如果是一个外网的网站,我们输入一个域名后,是怎么访问到服务器的呢,这个过程,其实就是DNS将域名解析为一个ip地址,然后进行的访问。

                                                             图片来自许令波版《深入分析JaveWeb技术内幕》

   臂如一个用户在浏览器输入了www.taobao.com,在按下回车键的时候就会进行一系列的DNS解析操作,它将输入的域名解析为一个IP地址,这个IP地址即为淘宝网的服务器地址,然后根据这个地址在茫茫互联网中将请求发送给服务器,进行正常的浏览。当然,这个解析的一系列动作并不简单。

   DNS解析中也运用了缓存的思想,在用户按下回车时,浏览器会先检查浏览器的缓存中是否有此地址的解析,如果有的话将不会解析直接访问,否则,浏览器将会查找本地操作系统的缓存中是否有此地址解析的数据,这说明操作系统也会有解析的动作,Windows下路径为C:\Windows\System32\drivers\etc\hosts,hosts文件在win7下一般为只读文件,目的是为了防止黑客劫持后将其域名解析修改至他想要指定的地址上,相对应的Linux上的在/etc/named.conf文件中。如果这两步中没有得到相应的数据,那么就会请求DNS服务器去解析,第一个会被访问的DNS服务器是LDNS,它的地址一般配置在用户的计算机中,Windows下可以通过DOS窗口命令ipconfig查看DNS地址,也可以查看本地TCP/IPv4属性查看。LDNS其实就是Local DNS,意为本地DNS服务器,这个"本地", 指的是 "当地" 的意思,比如说,你所在的小区接入了网通的光纤,你办理后使用了网通的网络,那么你的LDNS服务器就是网通公司在这个小区所提供的,这个服务器有可能在小区里,也有可能在附近的网通分公司的服务器机房里面。当然,LDNS也使用缓存技术,一个用户解析了一个域名之后,如果其他用户的相同的域名解析请求到达,服务器也会在缓存中查找是否已经解析,需要注意的是,这里提到的所有的缓存,都存在缓存时间和空间的限制。在执行到这一部分时候,绝大部分的域名解析都可以完成,如果此时仍未完成解析的话,就会访问到Root Server服务器(根服务器),但是根服务器不会直接进行域名解析,它会去访问gTLD Server服务器(顶级域服务器,此服务器目前全球只有十几个,比如.com),并将此服务器的地址返回给LDNS,LDNS再重新向gTLD发送解析请求,gTLD解析域名时,会根据域名查找到相应的Name Server地址,然后Name Server查询它所存储的域名和IP的映射关系,得到相应的IP,然后返回。 此处我的理解为:  假如这个域名为www.taobao.com,如果LDNS无法解析这个域名的话,会请求Root Server,Root Server 会返回给LDNS这个域名所属的顶级域服务器gTLD,然后LDNS会重新向这个gTLD发送解析请求,gTLD查找到www.taobao.com是xx在某个服务提供商注册的域名,它就会找到这个服务提供商的服务器Name Server,然后Name Server在它的数据库中查找到www.taobao.com对应的ip并将其返回,最终完成解析工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值