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