很多網站的內容儲存用多個域名的好處

主要是節省帶寬。
問題裏的“網站的內容”,其實指的是網站的圖片,或者視頻,或者js,css。

舉例說一下:
twitter 的主站 twitter.com ,用戶的每次訪問,都會帶上自己的cookie ,挺大的。假如twitter 的圖片放在主站域名下,那麼用戶每次訪問圖片時,request header 裏就會帶有自己的cookie ,header 裏的cookie 還不能壓縮,而圖片是不需要知道用戶的cookie 的,所以這部分帶寬就白白浪費了。
寫主站程序時,set-cookie 也不要set 到圖片的域名上。
在小流量的網站,這個cookie 其實節省不了多少帶寬,當流量如facebook twitter 時,節省下來就很可觀了。



節約cookie帶寬的因素,另一個重要因素是節約主域名的連接數,從而提高客戶端網絡帶寬的利用率,優化頁面響應。因爲老的瀏覽器(IE6是典型),針對同一個域名只允許同時保持兩個HTTP連接。將圖片等資源請求分配到其他域名上,避免了大圖片之類的並不一定重要的內容阻塞住主域名上其他後續資源的連接(比如ajax請求)。



三個最主流的原因:
1. CDN緩存更方便
2. 突破瀏覽器併發限制 (你隨便挑一個 G家的 url: lh4.googleusercontent.com, 把前面的 lh4換成 lh3,lh6啥的,都照樣能夠訪問,像地圖之類的需要大量併發下載圖片的站點,這個非常重要。)
3. Cookieless, 節省帶寬,尤其是上行帶寬 一般比下行要慢。。。

還有另外兩個非常規原因:
4. 對於UGC的內容和主站隔離,防止不必要的安全問題( 上傳js竊取主站cookie之類的) 。
正是這個原因要求用戶內容的域名必須不是自己主站的子域名,而是一個完全獨立的第三方域名。

5. 數據做了劃分,甚至切到了不同的物理集羣,通過子域名來分流比較省事. ^_^ 這個可能被用的不多。

PS: 關於Cookie的問題,帶寬是次要的,安全隔離纔是主要的。
關於多域名,也不是越多越好,雖然服務器端可以做泛解釋,瀏覽器做dns解釋也是耗時間的,而且太多域名,如果要走 https的話,還有要多買證書和部署的問題,^_^。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章