丁鹿學(xué)堂:前端工程師要懂的計算機網(wǎng)絡(luò)之CDN和DNS知識點
統(tǒng)一資源定位符URL
也被稱為網(wǎng)址,用于定位互聯(lián)網(wǎng)上的資源。
一個url的組成有
1 scheme?:是一個協(xié)議名,比如http,https,ftp
2 host:?就是我們最常建的域名網(wǎng)址
3 port 就是端口,不同的服務(wù)有不同的端口號,有些默認(rèn)的端口號就可以省略。
4 path:文件路徑,應(yīng)用內(nèi)部有很多資源,通過path去區(qū)分不同的資源
5 query:用戶傳遞的參數(shù),用?和path拼接起來
6fragment 片段,用#?去拼接,主要用于用戶在某個頁面內(nèi)的定位。
DNS
全稱是Domain Name System,域名系統(tǒng),是互聯(lián)網(wǎng)一項服務(wù),是進行域名和與之相對應(yīng)的 IP 地址進行轉(zhuǎn)換的服務(wù)器
是一種組織成域?qū)哟谓Y(jié)構(gòu)的計算機和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),它所提供的服務(wù)是用來將主機名和域名轉(zhuǎn)換為IP地址的工作。
DNS解析域名過程

DNS的解析過程是一個分層的。會有根域名的服務(wù),也會有局部區(qū)域性的服務(wù)。
1 用戶輸入網(wǎng)址,會發(fā)給本地運營商的一個服務(wù)。這個服務(wù)中已經(jīng)有了域名對應(yīng)的ip地址,就直接返回給用戶
2 如果本地沒有對應(yīng)的ip地址,則本地服務(wù)器會去根服務(wù)器去請求,根域名不會存儲所有域名的ip地址,只會告訴這個網(wǎng)址對應(yīng)的域名服務(wù)器。
比如如果是.com的域名,它會讓你接著去訪問.com的域名服務(wù)器。
3頂級域名服務(wù)器會再定向到改域名下的存儲網(wǎng)址的服務(wù)器,稱為權(quán)威域名服務(wù)器,他會返回給本地服務(wù)器,這里面就攜帶了對應(yīng)的ip地址,同時本地會緩存一份,供以后使用。
cdn相關(guān)知識點總結(jié)
CDN?(全稱 Content Delivery Network),即內(nèi)容分發(fā)網(wǎng)絡(luò)
CDN 就是一個基于地理位置的分布式代理服務(wù)器/數(shù)據(jù)中心。它會根據(jù)用戶位置分配最近的資源。
cdn的實現(xiàn)過程,當(dāng)用戶輸入一個網(wǎng)址,瀏覽器會檢查這個網(wǎng)址上所有資源的請求,會有很多,比如css,js。
以js請求為例,首先會做dns查詢,查詢這個js文件所在的ip地址。
通常一個cdn會返回一個cname記錄,類似于一個別名。
瀏覽器拿到這個別名之后,再去找一個cdn智能服務(wù)ip地址。
通過這個ip,瀏覽器訪問的是dns的智能調(diào)度中心,他會返回給你距離我們訪問比較近的一個節(jié)點,通過這個節(jié)點去拿到j(luò)s文件。
如果節(jié)點中沒有,cdn智能調(diào)用中心會去js本身的機房去拿數(shù)據(jù)給你,這個過程也稱為DNS回源。
注意:
cdn主要是用來存變化不大的資源。比如一些靜態(tài)資源,js不會怎么修改的資源,只會等到下次迭代可能會修改。這種cdn就很好用。
如果經(jīng)常會變動的資源就不適合cdn。
還有一個問題,已經(jīng)發(fā)布在節(jié)點上的內(nèi)容,如果想要刪除,是比較麻煩的。