瀏覽器請求與域名的關係

在最近的面試中被問到了這樣一個問題: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

相關文章
相關標籤/搜索