你對CDN了解多少?

2021-09-29 21:17:25 字數 1476 閱讀 9428

讓我們先從乙個例子,來簡單模擬一下,什麼是cdn技術。在二十多年前,大部分城市主流的購物方式,都是去某某百貨商店、某某商場,很多人擠在一塊小小的櫃檯前,挑選自己想要的東西。這明顯是算不上方便的。不論你買的是大件商品還是油鹽醬醋,都要去到乙個集中的商店裡去尋找,可能有的時候還會遇到斷貨的情況,大老遠的跑去卻要悻悻而歸。

雖然現在我們也依然有很多大型商場,但是很多日用商品我們是不再需要去百貨商場購買的了。這就是因為倉儲式購物場所的出現,也就是大家現在司空見慣的超市、便利店。

超市的出現,就是把本來需要集中的購物場所打散,把人們需要經常購買的商品提前放置在自己的賣場裡,供顧客前來選購。

什麼是cdn?

對於cdn來說,就好比是超市或者便利店,把本來需要集中獲取的資源快取到邊緣節點,使使用者就近訪問。

cdn的全稱是content delivery network/content distribution network,即內容分發網路。它解決的問題,就是在網路裡增加一層快取層,將源站的資源分發到距離使用者最近的網路邊緣節點,供使用者快速訪問。

cdn的優勢

cdn節點解決了跨運營商和跨地域訪問的問題,訪問延時大大降低;

大部分請求在邊緣節點完成,cdn起到了分流作用,減輕了源站壓力。

邊緣節點快取了什麼?

當使用者的客戶端做出了乙個請求後,客戶端首先會向cdn邊緣節點發起請求,邊緣節點則會檢測使用者請求資料的快取是否過期,如果沒有過期,則直接響應請求,將快取資料返回使用者,完成本次請求;如果資料過期,那麼邊緣節點會繼續向中間節點發出請求(同理,如果中間節點資料過期,則回源到源站請求),來獲取最新的資料。

cdn工作原理

這裡就帶來了另乙個問題了,使用者的客戶端是怎麼找到距離他最近的cdn邊緣節點的呢?

這裡解決了兩個問題:

1、訪問網域名稱如何對映到cdn位址?

2、如何找到距離使用者最近的節點?

下面我們來詳細描述一下整個流程。

1、訪問網域名稱如何對映到cdn位址

當你通過瀏覽器訪問example.com網域名稱時,假設這就是個靜態網域名稱,並且做了cdn靜態資源加速。

a、首先會經過本地dns解析器,檢視本機的/etc/hosts檔案是否存在網域名稱對應的ip,如果找到,直接使用該ip發起請求。否則執行步驟b;

b、由於本地dns伺服器解析,如果在本地dns快取中找到網域名稱對應ip,則直接用該ip訪問。否則繼續步驟c;

c、本地dns伺服器會向根網域名稱伺服器發起請求,根網域名稱伺服器返回頂級dns網域名稱伺服器位址,讓你去那裡查詢位址;

d、本地dns伺服器會向頂級dns網域名稱伺服器發起請求,.com頂級網域名稱伺服器返回權威dns網域名稱伺服器位址,讓你去那裡查詢位址;

e、本地dns伺服器繼續向example.com權威dns網域名稱伺服器發起請求,權威dns網域名稱伺服器一看,這個網域名稱我可以解析,發現是有做過cdn加速網域名稱配置的,它會cname到乙個網域名稱:***.example.cdn.com。

到此,我們終於找到了這個cdn網域名稱位址。如果你不需要找距離使用者最近的節點,通過此cdn網域名稱,就可以找到正確的ip位址了。

對CSRF你了解多少

我在這裡給大家舉個形象的例子來幫助大家理解。攻擊通過在授權使用者訪問的頁面中包含鏈結或者指令碼的方式工作。例如 乙個 使用者bob可能正在瀏覽聊天論壇,而同時另乙個使用者alice也在此論壇中,並且後者剛剛發布了乙個具有bob銀行鏈結的訊息。設想一下,alice編寫了乙個在bob的銀行站點上進行取款...

對CSRF你了解多少

我在這裡給大家舉個形象的例子來幫助大家理解。攻擊通過在授權使用者訪問的頁面中包含鏈結或者指令碼的方式工作。例如 乙個 使用者bob可能正在瀏覽聊天論壇,而同時另乙個使用者alice也在此論壇中,並且後者剛剛發布了乙個具有bob銀行鏈結的訊息。設想一下,alice編寫了乙個在bob的銀行站點上進行取款...

你對IT風投了解多少?

風投,即風險投資,簡稱是vc,在中國是乙個約定俗成的具有特定內涵的概念,其實把它翻譯成創業投資更為妥當。廣義的風險投資泛指一切具有高風險 高潛在收益的投資 狹義的風險投資是指以高新技術為基礎,生產與經營技術密集型產品的投資。但這種說法又是不大準確的。在大眾語境中,angel vc pe三者都可認為是...