1. 程式人生 > >dns-prefetch—DNS預解析技術

dns-prefetch—DNS預解析技術

今天在看一個網站的原始碼時 發現了 <link rel="dns-prefetch" href="//static.tuweia.cn/"> 對dns-prefetch有點兒好奇,因為不止一次地見到,今天終於忍不住要看看他到底是什麼技術?

下面是在網上找到的一篇關於dns-prefetch的簡述。

DNS 實現域名到IP的對映。通過域名訪問站點,每次請求都要做DNS解析。目前每次DNS解析,通常在200ms以下。針對DNS解析耗時問題,一些瀏覽器通過DNS Prefetch 來提高訪問的流暢性。 

什麼是 DNS Prefetch ? 
DNS Prefetch 是一種DNS 預解析技術,當你瀏覽網頁時,瀏覽器會在載入網頁時對網頁中的域名進行解析快取,這樣在你單擊當前網頁中的連線時就無需進行DNS的解析,減少使用者等待時間,提高使用者體驗。 

目前支援 DNS Prefetch 的瀏覽器有 google chrome 和 firefox 3.5 

那麼在服務端如何控制瀏覽器端對域名進行預解析那? 
如果要瀏覽器端對特定的域名進行解析,可以再頁面中新增link標籤實現。例如: 
<link rel="dns-prefetch" href="www.ytuwlg.iteye.com" />  
如果要控制瀏覽器端是否對域名進行預解析,可以通過Http header 的x-dns-prefetch-control 屬性進行控制。 

可惜目前支援上面標籤的只有 google chrome 和 firefox3.5 

關於google chrome 中 DNS Prefetch 詳細資料可參見: 
http://dev.chromium.org/developers/design-documents/dns-prefetching 


在chrome 中可通過在位址列中輸入 about:histograms/DNS.PrefetchFoundName 和 about:dns 來檢視當前瀏覽器的預解析資料。