YSLOW性能测试前端调优23大规则(9)减少DNS查找

YSLOW性能测试前端调优
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,不用记住能够被机器直接读取的IP数串。通过域名,得到该域名对应IP地址的过程叫做域名解析(或主机名解析)。DNS将主机名映射到IP地址上,就像电话本将人名映射到所对应的电话号码一样,当在浏览器中输入http://www.baidu.com时,连接到浏览器DNS解析器返回服务器的IP地址。像百度官网的IP地址为14.215.177.38。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

然而,DNS解析也是存在开销的,通常浏览器查找一个指定主机名的IP地址,需要花费20到120ms,在DNS解析完成之前,浏览器不能从主机名那里下载任何东西。DNS的查找有以下几个步骤:

  1. 浏览器检查自身缓存中有没有被解析过的这个域名对应的IP地址,如果存在解析就结束了。

  2. 如果浏览器缓存中命中,即没有找到,那么浏览器会检查操作系统缓存中有没有对应的已解析过的结果。在windows操作系统C:\Windows\System32\Drivers\etc路径下有一个hosts的文件,在这里如果指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址进行访问。

  3. 如果前面两步都没有命中域名,那么才会请求本地的域名服务器(LDNS)来解析这个域名,大约80%的域名解析会到这里完成。

  4. 如果LDNS仍然没有命中,就会直接跳到Root Server域名服务器请求解析。

  5. Root Server域名服务器会返回一个查询域的主域名服务器给LDNS。

  6. 此时LDNS再发送一个请求给上一步返回的主域名服务器。

  7. 接受请求的主域名服务器查找并返回这个域名对应的Name Server的地址,Name Server是网站注册的域名服务器。

  8. Name Server根据映射关系表找一目标IP,返回给LDNS。LDNS缓存这个域名和对应的IP。

  9. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中。

DNS解析的响应时间依赖于DNS解析器、它所承担的请求压力、客户端与服务器的距离和带宽速度。

TTL(Time To Live)表示查找返回的DNS记录包含的一个存活时间,表明记录可以被缓存多久,这个值告诉客户端可以对该记录缓存多久。过期则这个DNS记录将被抛弃。尽管操作系统缓存会考虑TTL值,但浏览器通常忽略该值,賆设置它自己的时间限制。并且浏览器对缓存DNS的记录数量也是有限制的,而不管缓存记录时间,如果用户在短时间访问了很多不同域名的网站,较早的DNS记录将被丢弃,必须重新查询该域名。

不同的浏览器对于DNS缓存有所不同,Internet Explorer的DNS缓存在[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]键下由三个设置控制:

“DnsCacheTimeout”=30分钟

“KeepAliveTimeout”=1分钟

“ServerInfoTimeOut”=2分钟

这表示如果DNS服务器TTL值小于30分钟的话,对浏览器进行DNS查找的频率产生的影响很小。

对于FireFox浏览器在about:config中设置就可以:

network.dnsCacheEntries=400

network.dnsCacheExpiration=60

network.http.keep-alive.timeout=115

在DNS解析过程中,减少唯一主机名的数量也呆以缩短DNS解析时间,如果客户端的DNS缓存为空时,DNS查找的数量与Web页面中唯一主机名的数量相等。但是减少唯一主机名的数量有可能减少页面中发生的并行下载量。减少并行下载可能会增加响应时间。我的准则是将这些组件分成至少两个但不超过四个主机名。这在减少DNS查找和允许高度并行下载之间取得了很好的折衷。

综上所述减少DNS查找通常可以提高响应性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值