什么是 DNS
DNS 是 TCP/IP 的分布式数据库,提供以下功能:
DNS 查找
如果计算机内置的DNS无法解析域名,就会向上级DNS服务器询问,并把信息一级一级向上传递,直到到达最顶层的服务器——根服务器,就知道该请求哪个服务器解析,得到IP地址后,再顺着原路返回到请求的计算机。
DNS存储结构
姓名:
DNS 查询获取 IP
两种方法:
* 递归解析
当本地DNS服务器无法回答客户端的DNS查询时,就需要向其他DNS服务器进行查询,查询方式有两种,图中为递归方式,本地DNS服务器负责向其他DNS服务器进行查询,一般是先向域名的根域名服务器进行查询,然后再向下一级查询根域名服务器,查询结果最终返回给本地DNS服务器,再由本地DNS服务器返回给客户端。
* 迭代解析
当本地 DNS 服务器无法回答客户端的 DNS 查询时,也可以通过迭代查询的方式进行解析,如图所示。本地 DNS 服务器不会自行查询其他 DNS 服务器,而是将能够解析该域名的其他 DNS 服务器的 IP 地址返回给客户端 DNS 程序,客户端 DNS 程序继续查询这些 DNS 服务器,直到得到查询结果。也就是说,迭代解析只是帮你找到相关的服务器,但不会帮你查。比如:这里的服务器 IP 地址是 192.168.4.5,你自己查吧,我很忙,只能帮你到这里了。
如果输入的是域名,需要进行DNS解析,将其转化为IP。
例如:
-
需要注意的是,DNS解析非常耗时,如果解析的域名过多,会导致首屏加载速度过慢,可以考虑DNS优化。
目前大部分浏览器已经支持该属性,支持的版本如下:
– :5+
- : 全部
– :3.5+
– 歌剧:
– IE: 9+ (“Pre-”开启)
其中,3.5+版本已经内置了DNS技术,并对DNS预解析做了相应的优化设置。因此,即使不设置该属性,3.5+版本也能在后台自动进行预解析。
目前很多大型网站也应用了这种优化,例如:
DNS尽量放在网页最前面,建议放在后面,具体使用方法如下:
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="//www.zhix.net">
<link rel="dns-prefetch" href="//api.share.zhix.net">
<link rel="dns-prefetch" href="//bdimg.share.zhix.net">
需要注意的是,使用DNS虽然可以加快页面解析速度,但不应滥用,正如有开发者指出的,禁用DNS预读可以每月节省100亿次DNS查询。
如果需要禁用隐式DNS,可以使用以下标签:
<meta http-equiv="x-dns-prefetch-control" content="off">
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。