在最近的面試中被問到了這樣一個問題:css
百度搜索的圖片資源來自跟百度不一樣的域名 imgstat.baidu.com, 緣由是什麼,這樣作有什麼好處。面試
平時這方面不太注意,一時半會答不上來,回來以後照着這個問題在網上學習了一下, 好處有如下:瀏覽器
1. 沒必要每次請求都攜帶cookie 信息 -- cookie free。服務器
說明: 按照傳統的方式,假設網站的 cookie 信息有 1kb, 若是網站上有150個資源的時候,則請求的過程當中須要攜帶 1kb * 150 = 150kb 的數據。多多少少會對速度形成影響。並且這個信息在請求js/css/img/flash 這些靜態資源上,幾乎是沒有必要的。解決方案是啓用和主站不一樣的域名來放置靜態資源。cookie
2. 多個域名能夠加大併發數 ( 由於瀏覽器對一個同一個域名的請求併發數量是有限制的 )併發
好比,某個瀏覽器對一個域名的併發數是6, 若是咱們設置n個服務器域名,那麼併發數能夠達到 6n,可是n 也不宜過多。dom
說明:性能
將css放置在頁面最上方應該是很天然的習慣,但第一個css內引入的圖片下載是有可能堵塞後續的其餘js的下載的。而在目前廣泛過百的整頁請求數的前提下,瀏覽器提供的僅僅數個併發,對於進行了良好優化甚至是前面有CDN的系統而言,是極大的性能瓶頸。 這也就衍生了domain hash技術來使用多個域名加大併發量(由於瀏覽器是基於domain的併發控制,而不是page),不過過多的散佈會致使DNS解析上付出額外的代價,因此通常也是控制在2-4之間。 這裏常見的一個性能小坑是沒有機制去確保URL的哈希一致性(即同一個靜態資源應該被哈希到同一個域名下),而致使資源被屢次下載。
答案內容來自知乎:學習
做者:黃良懿優化
連接:https://www.zhihu.com/question/20474326/answer/15696641