使用域名是为了用户更加友好的访问目标网站,好比你想访问百度进行搜索一些本身想要的东西,你是记www.baidu.com容易呢,仍是记61.135.169.121这个IP容易呢,很明显是前者。可是对计算机而言,直接访问IP地址会更快,效率会更高,由于域名须要域名解析服务器进行解析,最后仍是转换成IP地址。域名解析这个过程须要花费20~500ms不等,500ms是什么概念啊,地球的半径是4万公里,电信号在光纤中的传播速度大约是200000km/s,500ms一个电信号能够绕地球跑2.5圈,可见域名解析的效率有多低。chrome
咱们经过一个Linux中自带的dig命令来看一下,解析www.kuwo.cn域名的整个过程。浏览器
在Linux下执行:$ dig +trace www.kuwo.cn,执行结果以下图:缓存
咱们分步来看,服务器
这就是域名解析的全过程,共花费了231毫秒,时间比较长。fetch
咱们知道域名解析是把域名转换成IP地址,再与目标主机进行通讯,因此咱们只须要把域名所对应的IP地址记录下来,下次直接使用,就不须要再走上面那么繁复的步骤了。优化
在HTML的<head>中添加以下的标签:<link href="http://x.kuwo.cn" rel="dns-prefetch" />,那么下次浏览器再次访问目标网站的时候,就能够直接使用,不须要重复解析了。网站
在Chrome浏览器咱们能够看到域名解析的使用状况,包括域名被缓存的百分比,哪些域名的解析过长等等.net
在浏览器的地址栏输入:chrome://histograms/DNS.PrefetchQueue3d
结果以下图所示:server
可见在我本地系统中,有66.9%的域名被浏览器缓存直接使用,没有花费时间