【前端性能】淺談域名發(fā)散與域名收斂
云客網(wǎng)您網(wǎng)站的流量加油站【前端性能】淺談域名發(fā)散與域名收斂文/chokcoco性能優(yōu)化一直是前端工作中十分重要的一環(huán),都說從10到1容易,從1到0很難。而隨著前端技術(shù)的飛速發(fā)展,沒有什么技術(shù)或者法則是
云客網(wǎng)您網(wǎng)站的流量加油站
【前端性能】淺談域名發(fā)散與域名收斂
文/chokcoco
性能優(yōu)化一直是前端工作中十分重要的一環(huán),都說從10到1容易,從1到0很難。而隨著前端技術(shù)的飛速發(fā)展,沒有什么技術(shù)或者法則是金科玉律一沉不變的。
很佩服那些勇于挑戰(zhàn)權(quán)威,推陳出新的勇者,是他們讓我們的技術(shù)不斷的變革更加的卓越。好像扯遠了,本文主要想談談兩個名詞,域名發(fā)散和域名收斂。域名發(fā)散
這個很好理解,前端er 都知道,PC 時代為了突破瀏覽器的域名并發(fā)限制,遵循這樣一條定律:
·http 靜態(tài)資源采用多個子域名
嗯,為什么要這樣做呢,目的是充分利用現(xiàn)代瀏覽器的多線程并發(fā)下載能力。由于瀏覽器的限制,每個瀏覽器,允許對每個域名的連接數(shù)一般是有上限的,附圖
一枚:
上圖展示了各瀏覽器的并行連接數(shù)(同域名),可以看到在一些現(xiàn)代瀏覽器內(nèi)每個hostname 的最大連接數(shù)基本都是6個,IE 稍顯傲嬌,總體而言并發(fā)數(shù)不高。所以PC 時代對靜態(tài)資源優(yōu)化時,通常將靜態(tài)資源分布在幾個不同域,保證資源最完美地分域名存儲,以提供最大并行度,讓客戶端加載靜態(tài)資源更為迅速。另外,為什么瀏覽器要做并發(fā)限制呢?
1、究其根本原因,在以前,服務器的負載能力差,稍微流量大一
點服務器就容易就崩潰。所以為了保護服務器不被強暴到崩潰,
SEO 排名http://www.yuntask.com/
,云客網(wǎng)您網(wǎng)站的流量加油站
瀏覽器要對max connections(最大并發(fā)數(shù))進行限制。如果每個
用戶的最大并發(fā)數(shù)不限制的話,服務器的負載能力會大幅下降。
2、另外還有一個方面就是,防止DDOS 攻擊。最基本的DoS 攻擊
就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶
無法得到服務的響應。如果不限制并發(fā)請求數(shù)量,后果,啊哦,你
懂的。
域名收斂
本文的重點是想談談域名收斂,顧名思義,域名收斂的意思就是建議將靜態(tài)資源只放在一個域名下面,而非發(fā)散情況下的多個域名下。
上面也說到了,域名發(fā)散可以突破瀏覽器的域名并發(fā)限制,那么為要反其道而行之呢?因為因地制宜,不同情況區(qū)別對待,域名發(fā)散是PC 時代的產(chǎn)物,而現(xiàn)在進入移動互聯(lián)網(wǎng)時代,通過無線設(shè)備訪問網(wǎng)站,App 的用戶已占據(jù)了很大一部分比重,而域名發(fā)散正是在這種情況下提出的。且聽我一步步分析。
首先要知道,使用一個http 請求去請求一個資源時,會經(jīng)歷些什么。簡單而言:
1、DNS域名解析-->
2、發(fā)起TCP 的3次握手-->
3、建立TCP 連接后發(fā)起http 請求-->
4、服務器響應http 請求
5、......略
在這里第一步,也是關(guān)鍵的第一步DNS 解析,在移動端的http 請求耗時中,DNS 解析占據(jù)了大部分時間。說DNS 域名解析過程前,再科普一下域名結(jié)構(gòu)。
域名結(jié)構(gòu)
域名的結(jié)構(gòu)(或者叫命名空間)是一個樹狀結(jié)構(gòu),有樹就得有根,這個根是一個點‘.’(dot )。
以www.example.com 為例,完整的形式應該是www.example.com. ,注意最后一個點,就是根結(jié)點root ,只不過平時是瀏覽器或者系統(tǒng)的解析器自動幫我們補全了。我們要想獲取根域都有那些,可以在終端下直接使用dig 命令(需要安裝dig 指令),如下:
SEO 排名http://www.yuntask.com/
,云客網(wǎng)您網(wǎng)站的流量加油站
可以看到有13個,大部分都是在國外,根節(jié)點之后就是頂級域名,就
是.cn .com .gov 這些,頂級域劃分為通用頂級域(com 、org 、net 等)和國家與地區(qū)頂級域(cn 、hk 、us 、tw 等)。我們可以繼續(xù)使用dig 查看一下頂級域名的解析路徑,加上 trace參數(shù)選項,意思是追蹤DNS 解析過程,如下:
SEO 排名
云客網(wǎng)您網(wǎng)站的流量加油站
可以看到是先到根節(jié)點,再查找到com ,就是根結(jié)點會告知下一個結(jié)點com 在哪:就是com. 172800IN NS [a-m].gtld-servers.net。ok ,頂級域之后就是我們熟知的一級域名,譬如www.example.com 中的example 就是一級域。有興趣的可以自己試著用dig 指令再追蹤一下:dig example.com. trace,可以看到是從根節(jié)點從右向左逐步查找的。
NS 為何
上面兩張dig 命令貼圖中間出現(xiàn)了很多次NS ,NS 即是NameServer ,大部分情況下又叫權(quán)威名稱服務器簡稱權(quán)威。
什么是權(quán)威呢,通俗點講其實是某些域的權(quán)威,也就是權(quán)威上面有這些域的最新,最全的數(shù)據(jù),所有這些域的數(shù)據(jù)都應該以此為準(只有權(quán)威可以增刪改這些域的
SEO 排名
云客網(wǎng)您網(wǎng)站的流量加油站
數(shù)據(jù)),就像上面dig com trace的結(jié)果可以看到,com 的權(quán)威是上面的13個根域。同理,所有的頂級域(cn 、org 、net 等等)的權(quán)威都是根域。
SEO 排名http://www.yuntask.com/