摘要:但在里,所有的文本數據默認都會被壓縮目前的兼容性是所以說還是任重而道遠開啟那如何開啟呢很簡單,使用的用戶,可以下載一個的模塊使用的用戶,可以下載一個的模塊最后說兩句其實,和域名收斂一直都是前端世界的優化的重點。
話說天下大勢,分久必合,合久必分
其實域名也是一樣,分分合合, 不管是域名收斂還是域名發散,都有著自己獨特的應用場景。
目前, 在web"s top 30,000 URLS 里面, 平均每個域名承擔了50個資源的請求,所以,域名的擴散其實是個很重要的手段.
現在大部分website都推崇這域名的發散
這是為什么呢?為什么呢?為什么呢?
域名發散出現的原因其實真得瀏覽器. md~ 以前網速慢,設備差,稍微流量大一點 Server 就崩潰了。 所以, 為了保護你的服務器不被強暴到崩潰,瀏覽器要對max connections 有限制.如果每個用戶的max connections 不限制的話, 結果就是, 服務器的負載能力會低至冰點~
另外還有一個方面就是, 識別用戶不是DDOS attacker. 原因我就不多說了。 如果有大神的話,可以DDOS一下,試一試,表示,我的電腦扛不住.
由于瀏覽器的限制,每個瀏覽器,允許對每個域名的連接數一般是有上限的.
這是browserscrope生成的結果.通過這樣圖,我們就可以知道在一些現代瀏覽器內每個hostname的最大連接數基本都是6個,但是IE這個傻逼,不知道抽風了么? 當然,如果 進行了DS之后 增加連接,也還是有最大的連接數的(比如17)。
這里,為了講解清晰,我舉個例子吧. 假設現在瀏覽器對每個域名連接數為1. 那么現實情況是.
瀏覽器解析完我們的文檔之后開始發起請求,對文件進行加載. 然后一個一個文件 在max connections 下進行排隊下載.
但如果我們使用了域名分散之后,使用多個domain進行資源的下載,就有.
這樣完全可以省略掉排隊的時間.提升網頁加載的速度.
服務器對于每個域名的限制只是針對于hostname而已, 就算你的IP地址一樣,也是沒有太大關系的。所以,這里就可以使用CNAME來創建,不同域名相同IP的映射.
CNAME全稱就是Canonical Name。 他是DNS服務商提供的一項服務,用來給你的網站設置別名。
比如,你現在的網站是abc.example.com. 但是,你也想使用def.example.com 來訪問相同的網站, 那么這就需要你使用CNAME 來對你的域名設置alias. 通常不同的服務商有著不同的設置方法. 比如: 國外的maxCDN。
這樣,就能很方便的設置另外的域名來增加你文件的connections number.
另外,還可以在DNS服務商下申請子域。這些都是可行的.
使用DS 并不是一本萬利的。 因為在你增加域的同時,往往會給瀏覽器帶來DNS解析的開銷。如果有興趣的同學可以參考DNS解析. 對于PC端上,幾十ms的解析速度來說還好,但是,在手機端上,DNS 解析的效果我就呵呵了. 少則幾百毫秒,多則1s+.
這里我們用數據說話.
手機端頁面加載數和域名分散數的關系. from Mobify Developer
現在,各大瀏覽器都已經提升了資源的下載數,所以,域名分散的必要性也就沒這么大了. 可以從上表看出,在2個域名分散條件下,網頁的加載速度提升較大,而第三個以后就比較慢了。 所以, 一般來說,域名分散的數量最好在3以下.
那有沒有其他辦法能夠代替DS呢? 事實上有的, 最出名的應該算CDN 和 SPDY.
CDN和域名收斂的關系(沒關系)如果大家使用過云平臺(阿里云,騰訊云)的話,應該有所了解過上面的一些服務。 其中比較出名的應該算是CDN服務了.
使用CDN的時候,我們往往也會使用到CNAME的設置。 那么問題來了:
CDN 和 domain sharding 到底有什么關系?
我相信,大部分童鞋,應該都有點懵逼.
in fact, 他們兩個是完全不一樣的東西。
CDN 全稱是--Content Delivery Network. 現實意義就是,他其實就是一個 用來保存你靜態文件的倉庫(css,js,img等). 所以,他的出現必定是建立在擁有眾多服務器的云平臺上. 他的作用就是,托管你的文件,并且當某一個用戶想要得到這份文件時,便會根據地理位置,找到離用戶最近的一臺服務器(肯定需要經過DNS解析), 然后返回 你存儲的靜態文件. 所以,由于地理位置比較近的原因,結果就是網速快, 網頁打開的時間也就變短了.
而~ domain sharding 是什么呢? 其實對比看來,就應該很容易知道, 首先DS(domain sharding) 所提供的服務器地址是不會改變的。 只是增加了 不同的subdomain或者domain alias而已. 而這些在CDN 里面 統統都可以實現.
總結一下:
DS: 為了突破瀏覽器對連接數的限制,而將資源放到不同的domains 上的
CDN: 就是將你的資源放到 全國 或者說 全世界各個地方的服務器上的.(當然,他本身也是利用DS的技術)
When should we use CDN?由于CDN 比較貴,所以對于小范圍 運營性的H5來說,不使用CDN也沒有太大的影響,反正用戶都在那一塊。 但是,如果你的web 比較大,而且涉及用戶群體的范圍比較廣的話,相對性的使用CDN 也是有益無害的。不過,由于CDN 是按瀏覽計費的,所以你懂的。 這里安利一個Calculator根據你的流量來選擇最佳的CDN. 所以說,你用不用CDN還得看你自己或者你leader的心情了. 另外更詳述的區別可以見: CDN xx DS
那SPDY又是個什么東西呢?
SPDY指南SPDY可以說是DS殺手. SPDY 的作用就是,在不增加域名的情況下,解除最大連接數的限制. 臥槽~ 怎么聽起來就像一個 sliver bullet. 沒錯,可以說SPDY 就是 HTTP2的前身.
SPDY是google主導的一種新型通信方式.主要的特點就是多路復用. 他的目的就是致力于取消max connections 上限. 不過由于推廣時間短,全世界使用的網頁數都比較少. 但,據chromium統計,使用了SPDY網頁速率 差不多提升了28%~64%左右. 所以,說SPDY的出現,可以讓DS的存在變的毫無價值.
那SPDY具體的優勢在哪里.
解決了HTTP只能 One request per connection. 當連接完成后,可以實現并行下載多個資源文件
服務器推的技術, 和SSE的理念類似,不過更靠底層。直接可以實現無需用戶等待,直接后臺發資源(感覺就像寫APP了,有木有)
請求頭的復用. 當你前幾次的請求頭內容沒多大變化的時候,就會省去幾個相同的,實現Header Compression
數據壓縮: 在HTTP1.1 有 Content-Encoding: gzip, Transfer-Encoding: chunked. 來顯式表明開啟文本壓縮。但在SPDY里,所有的文本數據默認都會被壓縮.
SPDY目前的兼容性是IE11+.(所以說還是任重而道遠)
那如何開啟SPDY呢? 很簡單,使用nginx的用戶,可以下載一個ngx_http_spdy_module的模塊. 使用apache的用戶,可以下載一個mod_spdy module的模塊.
最后說兩句其實,DS 和 domain of convergence (域名收斂), 一直都是前端世界的優化的重點。 不過,由于時代在進步,技術在革新。 感覺DS 是很有可能被淘汰的啊喂. 但,由于SB-IE占的全球份額過大,就目前來說,這一天 還太遙遠。 加油~
轉載請注明作者和原文鏈接: https://segmentfault.com/a/1190000004647665
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/10957.html
摘要:雖然今年沒有換工作的打算但為了跟上時代的腳步還是忍不住整理了一份最新前端知識點知識點匯總新特性,語義化瀏覽器的標準模式和怪異模式和的區別使用的好處標簽廢棄的標簽,和一些定位寫法放置位置和原因什么是漸進式渲染模板語言原理盒模型,新特性,偽 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總1.HTMLHTML5新特性,語義化瀏覽器的標準模式和怪...
摘要:雖然今年沒有換工作的打算但為了跟上時代的腳步還是忍不住整理了一份最新前端知識點知識點匯總新特性,語義化瀏覽器的標準模式和怪異模式和的區別使用的好處標簽廢棄的標簽,和一些定位寫法放置位置和原因什么是漸進式渲染模板語言原理盒模型,新特性,偽 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總1.HTMLHTML5新特性,語義化瀏覽器的標準模式和怪...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總 1.HTML HTML5新特性,語義化瀏覽器的標準模式和怪異模式xhtml和html的區別使用data-的好處meta標簽canvasHTML廢棄的標簽IE6 bug,和一些定位寫法css js放置位置和原因...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總 1.HTML HTML5新特性,語義化瀏覽器的標準模式和怪異模式xhtml和html的區別使用data-的好處meta標簽canvasHTML廢棄的標簽IE6 bug,和一些定位寫法css js放置位置和原因...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。 雖然今年沒有換工作的打算 但為了跟上時代的腳步 還是忍不住整理了一份最新前端知識點 知識點匯總 1.HTML HTML5新特性,語義化瀏覽器的標準模式和怪異模式xhtml和html的區別使用data-的好處meta標簽canvasHTML廢棄的標簽IE6 bug,和一些定位寫法css js放置位置和原因...
閱讀 2508·2023-04-25 17:37
閱讀 1189·2021-11-24 10:29
閱讀 3696·2021-09-09 11:57
閱讀 692·2021-08-10 09:41
閱讀 2243·2019-08-30 15:55
閱讀 2811·2019-08-30 15:54
閱讀 1941·2019-08-30 15:53
閱讀 895·2019-08-30 15:43