其實(shí)細(xì)心的朋友們可能會(huì)發(fā)現(xiàn),現(xiàn)在一些中大型網(wǎng)站會(huì)將站點(diǎn)的一些靜態(tài)資源(如:CSS樣式、JS腳本、其它文件)以單獨(dú)的域名來部署,而不是和主站域名一樣,這是為什么呢?其實(shí)這就是所謂的“動(dòng)靜分離”!
“動(dòng)靜分離”架構(gòu)是什么?
要弄清“動(dòng)靜分離”架構(gòu)前我們要先弄清楚靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面的概念。
1、靜態(tài)頁(yè)面
靜態(tài)是指幾乎不變動(dòng)或變動(dòng)頻率很低的頁(yè)面,比如:靜態(tài)化的HTML文件、JS/CSS、圖片、壓縮包等文件。
2、動(dòng)態(tài)頁(yè)面
所謂動(dòng)態(tài)頁(yè)面是指不同用戶訪問時(shí)其展現(xiàn)的數(shù)據(jù)內(nèi)容不同,但所有用戶訪問的頁(yè)面模板是相同的,比如:會(huì)員中心頁(yè)、訂單頁(yè)、個(gè)人資料詳情頁(yè)等。
3、動(dòng)靜分離
它是指將動(dòng)態(tài)請(qǐng)求與靜態(tài)請(qǐng)求分離開來,動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面用不同的技術(shù)來架構(gòu)和提供服務(wù)。
“動(dòng)靜分離”架構(gòu)的優(yōu)點(diǎn)
動(dòng)靜分離最終目的就是:降低服務(wù)器負(fù)載,加快網(wǎng)站訪問速度。
對(duì)于動(dòng)態(tài)頁(yè)面,服務(wù)器配置高一些;對(duì)于靜態(tài)頁(yè)面服務(wù)器配置可以很低。這樣區(qū)分開之后,服務(wù)器利用更為合理,靜態(tài)文件走CDN的話可以減少服務(wù)器帶寬的開銷,能加快網(wǎng)站訪問速度。
動(dòng)靜分離架構(gòu)中,為什么圖片使用單獨(dú)域名來部署?
上面說到了,圖片等靜態(tài)資源可以做動(dòng)靜分離處理,可是我們并沒有說動(dòng)靜分離必須要用不同的域名呀。縱觀當(dāng)下大型互聯(lián)網(wǎng)平臺(tái),這些靜態(tài)資源一方面是用單獨(dú)域名部署的,另一方面它們使用的域名和主站根域名都不同,這是為什么呢?
其實(shí),使用不同主域下的域名來做動(dòng)靜分離較使用相同主域的域名做動(dòng)靜分離更有利,主要體現(xiàn)在以下幾方面:
1、突破瀏覽器并發(fā)數(shù)限制
不管是什么瀏覽器默認(rèn)都是有并發(fā)數(shù)限制的,一般在3~5個(gè),這意味著在同一時(shí)間內(nèi)瀏覽器所發(fā)出的請(qǐng)求數(shù)也就3~5個(gè),若站點(diǎn)靜態(tài)資源過多,就意味著很多資源要排除等待請(qǐng)求。
2、減少Cookie污染
我們知道,同個(gè)根域下的Cookie是可以共享的,如果圖片使用的是子域的域名來請(qǐng)求的,那意味著請(qǐng)求時(shí)還會(huì)帶上主域的Cookie信息,然而圖片資源并不需要這些Cookie信息,同時(shí)加上Cookie的請(qǐng)求還占用了帶寬,影響請(qǐng)求速度。
基于這點(diǎn)考慮,對(duì)于靜態(tài)資源站點(diǎn)我們建議使用和主域不同的域名來部署,這樣不會(huì)導(dǎo)致Cookie污染。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),我了解更多科技知識(shí)!