我們在需要下載很多內(nèi)容的時候,很容易想到做分域名的并發(fā)下載,給原來的服務(wù)器多分幾個域名,因為分不同的域名可能可以在瀏覽器中分到更多的下載進程,提高下載速度。
但是在做網(wǎng)絡(luò)應(yīng)用的時候,我們的一個域名下面有的時候會有多個ip多臺服務(wù)器,分布在不同的機房,這個時候瀏覽器會在可選的ip里面隨機的選擇一個ip。用nslookup可以看到可選的ip,用ping可以看到當前正在實用的ip。
在多個ip的情況下,對具體的一個用戶,往往是連接到某些ip特別快,而連接到某些ip就不怎么塊。比如我現(xiàn)在有一個域名(和它的幾個分域名),在深圳訪問的時候有2個ip可以分,其中一個是深圳本地的服務(wù)器,一個是外地的服務(wù)器。這個時候如果頁面打開需要用到的關(guān)鍵資源依賴于這個域名,那么分域名有可能對速度不是提高而是有反作用。
因為這種情況下,慢的資源成為了瓶頸,變成是速度的決定因素。我本來有一半的機會是快的,一半的機會是慢的,如果現(xiàn)在分兩個域名去下載關(guān)鍵資源,變成有1/4的機會是兩個域名都分到深圳的服務(wù)器,可以有提高,而3/4的機會是有一個以上的域名分到外地的服務(wù)器,反而變慢了,這樣提高的是少部分人的感受,而多數(shù)人的感受沒有提升或者變的更差。如果簡單的按照yahoo的優(yōu)化建議分散到4個域名上,那么這個比例就變成1:15,更差了。
因此分域名下載不能簡單的絕對化的看待,要看實際應(yīng)用場景做決定。