天天看點

網站靜态資源為什麼要用獨立一級域名而不是二級域名?

作者:大海戰2硬核海戰遊戲

獨立域名指的是一級域名而不是二級或三級域名

大型網站的靜态資源都是放在獨立的域名之下的。

  • 浏覽器的很多機制對網站的通路速度有很大的影響(例如浏覽器對靜态資源的緩存機制),此外浏覽器為提升頁面顯示效率,支援并發擷取資源。浏覽器對并發請求的數目限制是針對域名的,即針對同一域名(包括二級域名)在同一時間支援的并發請求數量的限制。如果請求數目超出限制,則會阻塞。是以,網站中對一些靜态資源,使用不同的一級域名,可以提升浏覽器并行請求的數目,加速界面資源的擷取速度
  • 網絡請求時cookie傳輸

    當靜态資源與主服務在同一域名下(根據業務需要,主服務請求時需要傳遞cookie資訊),每次靜态資源的請求,都會發送同域名下的cookie。而對于靜态資源,伺服器無需對cookie進行任何處理,它們隻是在毫無意義的消耗帶寬。

    假設網站cookie資訊有1 KB、網站首頁共150個資源時,使用者在請求過程中需要發送150 KB的cookie資訊,在512 Kbps的常見上行帶寬下,需要長達3秒左右才能全部發送完畢。很多情況下cookie的path是在整個一級域名下可用的,如果你把靜态資源設定成二級域名,那麼它也避免不了cookie。例如如果給 http://126.com 設定了cookie,那麼會感染所有子域名, 請求 http://www.126.com/logo.gif或者http://image.126.com/logo.gif 時便會帶上讨厭的cookie。

    是以對于靜态資源使用單獨的域名,并設定為無cookie,以減少請求大小,提高網頁性能。啟用新的一級域名,每次請求浏覽器不會攜帶cookie。這對于cookie内容比較大,并且流量大的網站會省去不少寬帶費用

  • 友善分流或緩存

    動靜分離。靜态資源與動态内容分離,有利于部署于CDN。靜态資源獨立部署,為全局産品服務。友善複用,放在一個伺服器上的檔案可以共其他伺服器上的産品使用。 比如taobao.com和tmll.com都會用到tbcdn.cn上的靜态資源,這些資源不必從屬于某個産品。

    這樣同時也有利于最大化利用用戶端緩存。比如通路taobao.com,緩存了tbcdn.cn上的某個js檔案,之後再通路tmll.com時,也用到此js檔案,不必再從tbcdn.cn上下載下傳,直接用用戶端緩存即可。

繼續閱讀