减少DNS查找
从顾客角度减少DNS查找。所有性能至关重要的Web页面。减少下载页面所需要的DNS查找,不过要权衡考虑浏览器对同时连接的限制。DNS查找必须要花费大批的時间,大批的DNS查找会决定顾客体验。减少对象、任务、计算等都可以加速页面载入,但同时也需要考虑工作分解。
至此可见,减少便是提高性能和扩展性的代名词。虽然很多原则针对的是软件即服务(SaS)的架构,但这样的原则考虑的则是客户的浏览器。假如采用浏览器端的调试工具,如MozillaFirefoxI的插件Firebug9,那么在载入应用中的一个页面时,你就会发现有趣的结果。最惹人注意的结果之是页面中大小类似的对象下载的时长却不一样。进一步观察,你会发现在开始下载对象以前,都有一个额外的流程:DNS查找。
域名服务器(DNS)是因特网或其他采用TCP/IP协议的网络最重要的基础设施之一。它可以把域名(如www.akfpartners.com)翻译成IP地址(如184.72.236.173),因此经常被比作电话簿。DNS是通过一个分布式数据库系统维护的,该数据库系统的节点是域名服务器。这种分层体系的最顶层是根域名服务器。每个域至少有一个权威的DNS服务器,用于发布关于该域的信息。
采用多层级缓存的方法可以加速把域名翻译为IP地址,缓存可在浏览器、操作系统、因特网服务提供商等各级开展。不过,在现实世界中页面上都有成百上千的对象,很多对象来自于不同的域,下载每个对象的時间虽然微不足道,不过累加起来形成的時间差就会引起客户注意了咋们深入讨论如何减少DNS查询以前,最先应该对大多数浏览器如何下载页面有越来越多的清楚。
这并不是说要深入研究浏览器,不过理解基础原理有助于你优化应用的性能和扩展性。差不多所有的Web页面全是由很多不同的对象(图像、Javascript脚本、CSS脚本等)构成的,浏览器利用了这一点,可以同时连接下载多个对象。浏览器限制了对每个服务器或代理的最大同时持续连接数。依据HTTP/1.1RFC规定,这样的最大连接数应该设置为2。不过很多浏览器都会忽略这样的RFC,把最大连接数设置为6或者更大。在下一个原则中,咋们将介绍如何利用这样的基本功能优化页面的下载時间。现在,让咋们把重点放在可以分成多个对象,并通过多个连接下载它们的Web页面。
Web页面上的一个或多个对象可能属于不同的域,每个域都必须要在缓存或DNS域名服务器中开展DNS查找。
例如,假设一个简单的Web页面具有以下4个对象:
1)包含文本和其他对象相应指令的HTML页面自身;
2)设置布局的CSS文件;
3)设置菜单项的Javascript文件;
4)JPG图像。
HTML文件来自于咋们的域(akfpartners.com),但CSS文件和JPG文件来自于子域(static.akfpartners.com)Javascrip文件则是链接到Google(ajax.googleapis.com)的。在这样的例子中,测览器最先政御访www.akfnartners.com页面的请求,这就必须要对域akfnartners.com开展DNS查找。当把HTML文件下载到浏览器中后,浏览器解析发现必须要从static.akfpartners.com下载CSS和JPG文件,这就必须要另一次DNS查找。最最后,通过解析发现还必须要从另外一个域下载一个外部的Javascript文件。依靠浏览器、操作系统等对DNS缓存的刷新,这些查找花费的時间最多只有几百毫秒。
一个通用的网站开发原则是,页面上的DNS查找越少下载页面的性能越高。不过,把所有对象都放在一个域中也有不利的一面,咋们在前面关于最大同时连接数的讨论中就暗示过这一点。
本文章由新概念互动原创,如没特殊注明,转载请注明来自:http://www.jianzhan0.com/zhiku/76722.html