為什麼很多網站的靜態資源會使用獨立的域名?

比如126郵箱的部分js、css、圖片存放於http://mimg.127.net

新浪也有獨立的域名用於引用js http://sinajs.cn


避免域名污染。 當瀏覽器向伺服器請求一個靜態資源時,會先發送同域名下的 cookie,伺服器對於這些 cookie 不會做任何處理。因此它們只是在毫無意義的消耗帶寬。所以你應該確保對於靜態內容的請求是無coockie的請求。

如果給 http://126.com 設置了cookie,那麼會感染所有子域名, 請求 http://www.126.com/logo.gif或者http://image.126.com/logo.gif 時便會帶上討厭的cookie。

所以要用單獨的域名,以減少請求,提高網頁性能。

詳見

http://developer.yahoo.com/performance/rules.html#cookie_free


瀏覽器對相同域名的並發連接數限制


@雷霆 已經說得挺清楚了,但是還有另外一點,就是瀏覽器並發連接數的問題。瀏覽器對每個域名的並發鏈接是有限制的,一般現代瀏覽器都是6個,使用多個獨立域名,可以大大拓展這個並發連接數,也就是令瀏覽器並行下載更多資源,提高站點性能。


首先說下,不是用獨立的二級或三級域名,而是用獨立的一級域名。

按照我的理解是,很多情況下cookie的path是在整個一級域名下可用的,如果你把靜態資源設置成二級域名,那麼它也避免不了cookie。

用一個獨立的域名有一下幾個優點:

1.靜態資源的http請求中不會攜帶無用的cookie。

2.動靜分離更有利於CDN。

3.http對同一個域名的同時下載線程數是有限制的,只要是為了優化下載速度,防止一個域名下太多下載線程,每個瀏覽器的限制不同。

4.方便復用,放在另一個伺服器上,可以方便全局內其他產品的使用,比如說http://taobao.com的js文件可以給tmall使用。

5.基於第四點,還有利於客戶端的緩存,比如你打開了http://taobao.com緩存了t.js文件,那麼再打開tmall的時候,由於請求的是同一文件,就不用再下載了。

————————————————————

以上如有錯誤,請指出


分流吧~


推薦閱讀:

DOM, DOCUMENT, BOM, WINDOW 有什麼區別?
給bootstrap模態框中的關閉按鈕添加事件,alert出的this竟然是鏈接?
pjax 是如何工作的?
Vuex與Redux的主要區別在哪裡,兩者各有什麼優缺點?
怎麼樣看待AngularJS從1升級到2的不兼容問題?

TAG:網頁設計 | 前端開發 | CSS | JavaScript |