CDN全稱(chēng)是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò),它能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶(hù)的距離和響應(yīng)時(shí)間等綜合信息將用戶(hù)的請(qǐng)求重新導(dǎo)向離用戶(hù)最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶(hù)可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的響應(yīng)速度。
使用DNS預(yù)解析
當(dāng)瀏覽器訪(fǎng)問(wèn)一個(gè)域名的時(shí)候,需要解析一次DNS,獲得對(duì)應(yīng)域名的ip地址。在解析過(guò)程中,按照瀏覽器緩存、系統(tǒng)緩存、路由器緩存、ISP(運(yùn)營(yíng)商)DNS緩存、根域名服務(wù)器、頂及域名服務(wù)器、主域名服務(wù)器的順序,逐步讀取緩存,直到拿到IP地址
DNS Prefetch,即DNS預(yù)解析就是根據(jù)瀏覽器定義的規(guī)則,提前解析之后可能會(huì)用到的域名,使解析結(jié)果緩存到系統(tǒng)緩存中,縮短DNS解析時(shí)間,來(lái)提高網(wǎng)站的訪(fǎng)問(wèn)速度。
方法是在 head 標(biāo)簽里面寫(xiě)上幾個(gè) link 標(biāo)簽,比如:
對(duì)以上幾個(gè)網(wǎng)站提前解析 DNS,由于它是并行的,不會(huì)堵塞頁(yè)面渲染,這樣可以縮短資源加載的時(shí)間;
并行連接
由于在HTTP1.1協(xié)議下,chrome每個(gè)域名的醉大并發(fā)數(shù)是6個(gè)。使用多個(gè)域名,可以增加并發(fā)數(shù);
持久連接
使用keep-alive或presistent來(lái)建立持久連接,持久連接降低了時(shí)延和連接建立的開(kāi)銷(xiāo),將連接保持在已調(diào)諧狀態(tài),而且減少了打開(kāi)連接的潛在數(shù)量;
管道化連接
在HTTP2協(xié)議中,可以開(kāi)啟管道化連接,即單條連接的多路復(fù)用,每條連接中并發(fā)傳輸多個(gè)資源,這里就不需要添加域名來(lái)增加并發(fā)數(shù)了。