您現在的位置: 网站首頁 / 網站建設 / 正文

減少域名DNS解析時間將網頁加載速度提升新層次

作者: admin 发布: 2015-3-16 15:39:5 分类: 網站建設 閱讀: 次 查看評論

  提高網頁的打開速度,一般地我們會選擇使用CDN,利用“就近原則”讓用戶在最短的時間內獲取到服務器資源,實際應用當中采用CDN的方式提高網站訪問速度的效果也是最明顯的。這也就是爲什麽國外的空間打開速度遠不及國內的主機的訪問速度的原因了。

  我們知道在用戶訪問網站時先得經過域名DNS解析這一過程,可能很多人對于DNS解析時間平常並沒有太在意。性能穩定、響應時間快的DNS域名解析服務與不穩定、響應過慢的DNS的域名解析時間可能相差1秒,而對于網站存在過多的域名解析請求,這個時間積累起來就非常地多了。

  本篇文章就來分享一下通過優化網站DNS域名解析,減少域名DNS解析時間,從而讓網站在原來的訪問速度的前提下繼續實現新的飛躍。

  減少域名DNS解析時間將網頁加載速度提升到新層次-DNS緩存/預加載/多域名

  一、域名DNS解析原理和過程

  1、DNS是怎么来的?DNS 是域名系统 (Domain Name System) 的缩写。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

  2、DNS解析的基本過程一:查找本地域名DNS緩存。當用戶通過浏覽器訪問某域名時,浏覽器首先會在自己的緩存中查找是否有該域名對應的IP地址,例如計算機系統Hosts文件域名對應IP、路由器緩存、ISP(互聯網服務提供商)DNS緩存。

  域名DNS解析的原理

  3、DNS解析的基本過程二:通過上面的DNS查詢依然沒有找到想你的域名對應的IP地址,那麽就要進入根服務器進行查詢。全球共有13台根邏輯域名服務器。這13台邏輯根域名服務器中名字分別爲“A”至“M”,真實的根服務器在2014年1月25日的數據爲386台,分布于全球各大洲。

  4、在根域名服務器中雖然沒有每個域名的具體信息,但儲存了負責每個域(如COM、NET、ORG等)的解析的域名服務器的地址信息。根域名服務器會將其管轄範圍內頂級域名(如.com)服務器IP告訴本地DNS服務器,這樣你的域名查詢請求會進入到相應的頂級域名服務器。

  5、DNS解析的基本過程三:頂級域名服務器收到請求後查看區域文件記錄,若無則將其管轄範圍內主域名(不帶任何前綴的域名,如freehao123.com)服務器的IP地址告訴本地DNS服務器。如果還是沒有找到,則進入到下一級域名服務器進行查找。如此重複,直到找到正確的結果爲止。

  6、查找到正確的域名對應IP地址後,本地域名服務器把返回的結果保存到緩存,以備下一次使用,同時將該結果反饋給客戶端,客戶端通過這個IP地址與web服務器建立鏈接。于是你的浏覽器就正常訪問網站了。下圖是對Google.com爲例,解釋用戶在訪問谷歌時DNS解析的全過程。(點擊放大)

  域名DNS解析全过程

  二、浏覽器加載網頁的基本過程

  1、從浏覽器地址欄的請求鏈接開始,浏覽器通過DNS解析查到域名映射的IP地址,成功之後浏覽器端向此IP地址取得連接,成功連接之後,浏覽器端將請求頭信息通過HTTP協議向此IP地址所在服務器發起請求,服務器接受到請求之後等待處理。

  域名解析的时间

  2、览器加载显示html的顺序是:从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。如果遇到语义解释性的标签嵌入文件(JS脚本,CSS 下载过程会启用单独连接进行下载,并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。(点击放大)

  浏览器加载网页的时间线

  3、什麽原因會導致網頁加載過慢?浏覽器可以在下載CSS資源的同時,並行解析HTML文件,但是,一旦發現有腳本文件的引用,則必須等待腳本文件完成下載並且執行後才能繼續解析。內容下載時間主要取決于用戶帶寬、服務器帶寬、文件大小、文件數量等。

  三、合理利用DNS TTL值 增加域名的缓存命中率

  1、DNS 服务器采用递归或迭代来处理客户端查询时,它们将发现并获得大量有关 DNS 命名空间的重要信息。然后这些信息由服务器缓存。缓存为 DNS 解析流行名称的后续查询提供了加速性能的方法,同时大大减少了网络上与 DNS 相关的查询通信量。

  合理利用DNS TTL值

  2、TTL(Time-To-Live)即一条域名解析记录在DNS服务器上缓存时间。当信息缓存时,生存时间 (TTL) 值适用于所有缓存的 RR。只要缓存 RR 的 TTL 没有到期,DNS 服务器就可继续缓存并再次使用 RR 来应答与这些 RR 相匹配的客户端提出的查询。

  提高域名DNS服务器缓存时间

  3、适当地增大TTL值可以让DNS Server缓存该域名更长时间,增加缓存的命中率。TTL一般默认为一小时,可以根据实际情况设为一天甚至一周以上。当然,如果你域名的IP经常变化,则TTL不应过大,否则各地的DNS Server会暂时无法获得新的正确的IP地址。

  四、合理使用DNS-prefetch讓DNS預讀取

  1、從上面浏覽器加載網頁的過程可以看出,網頁的請求是可以多任務同時進行的,對于網頁有多個DNS請求的情況,可以讓浏覽器在後台先把要使用的DNS請求默默地完成,這樣當用戶在打開新的網頁時,就可以節省DNS查詢的時間了。

  使用DNS预读取加快网页打开速度

  2、控制浏览器的DNS预读取就是DNS-prefetch标签了,DNS Prefetch应该尽量的放在网页的前面,格式类似是:

  很多網站都使用使用百度廣告聯盟代碼,使用這個就可以預讀取DNS了。

  3、默认情况下浏览器会有隐式的DNS Prefetch,即会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,我们可以通过下面的标签禁止隐式的DNS Prefetch:

  4、需要注意的就是,DNS Prefetch只需要在用户在第一次打开网站时使用即可,没有必要每个页面都使用DNS Prefetch,否则就是重复DNS读取了,反而还无形中增加了DNS查询的次数,效果适得其反。

  五、DNS域名解析拆分爲多個域名增加並行下載量

  1、一般來說網頁的內容加載時會發生多個域名請求服務,如果你的網站JS、CSS、圖片等非常多的話,建議將這些文件分別放在不同的域名上,這樣浏覽器在打開某一個頁面時就可以同時向這些域名發送DNS解析請求了,能在一定程度上減少DNS時間。(點擊放大)

  DNS域名解析拆分为多个域名

  2、网页的内容越多,分析的域名应该尽量多一些。例如html、htm,js、css,jpg、png、gif,php、asp都可以放在不同的域名上。在实际应用上,使用全站CDN或者是静态文件CDN就可以实现上述效果,并且结合css sprite一起来使用的。

  减少网页的DNS请求次数

  3、css sprite的作用恰恰相反,它不是增加域名请求,而减少域名DNS请求,主要是用在图片上。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。

  六、加快域名DNS解析速度方法小結

  1、本文介紹的用DNS緩存、DNS預讀取、拆分域名來減少域名DNS解析的時間的方法,對于一般的網站的加速效果可能並不明顯,但是對于一些每天DNS請求達到上百萬級以上的網站,DNS加速的效果就顯而易見了。另外,如果發現自己的網站響應速度過慢,不妨好好檢查一下網頁的DNS用時。

  2、除了從網站本身的DNS解析來加快訪問速度外,我們平常在選擇DNS服務時盡量使用那些穩定可靠的DNS服務,這樣的DNS服務響應速度和緩存率都是非常不錯的。假如自己的網站分拆了多個二級域名,不妨好好用用CNAME,設置好TTL時間,保證網站的第一次解析,可以直接從運營商的DNS緩存中拿到。

  --免費資源部落

  來源:SEO搜尋引擎優化 - SEO自學網 轉載注明出處!

? 上一篇下一篇 ?   本文關鍵詞: DNS  

評論列表:

站長SEO學院
第一節:百度搜索引擎工作原理
第二節:建設對搜索引擎友好的站點
第三節:如何進行網站內容建設
第四節:整體優化、結構優化、網頁優化
第五節:移動搜索-明確移動搜索優化標准
百度SEO資料文檔
百度搜索引擎優化指南2.0
百度移動搜索優化指南2.0
網站分析白皮書(站長版)
移動站點該如何優化
建設對百度友好的站點
百度搜索引擎網頁質量白皮書
石榴算法-綠蘿算法-冰桶算法
新搜索時代下的優化策略
更多百度SEO資料文檔
站長推薦
DIV+CSS布局實例教程-Web標准
网站SEO優化常见问题汇总
SEO優化推广方案该如何写
SEO優化方案步骤
影響網站關鍵詞排名因素總結
影響谷歌搜索引擎排名的因素調查
手機移動端站點適配優化
最近發表