Try   HackMD

CDN (Content delivery network) 內容傳遞網路

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Left: Without CDN, Right: With CDN

CDN 是什麼

A content delivery network (CDN) is a distributed network of servers that can efficiently deliver web content to users.

CDN是一個「利用快取機制」的分散式伺服器網絡,目的在於有效率且快速將網頁內容呈現給使用者。(以網絡/群體的概念去理解)

CDN 的機制

在POP location(入網點)的Edge servers(邊緣伺服器)上,抄一份原伺服器上的檔案過來。一旦有人要訪問該檔案(網址),DNS會先將request導向地理位置最近的POP location、檢查POP location中的Edge server是否有該內容。如果有,則傳送該內容回去;如果沒有,則由Edge server向原伺服器request該檔案,拿到response後回傳給使用者並抄送一份進Edge server儲存。

該檔案儲存在Edge server的時間長度視HTTP header中的TTL(Time-To-Live)而定,預設為七天。

CDN 的實際案例

CDN 的好處

  • 讓使用者享有更好的效能和改善的使用者經驗,尤其是當使用的應用程式需要反覆存取多次才能載入內容時。
  • 進行大幅調整可以更妥善地處理瞬間大量負載 (例如產品上市事件的開始)。
  • 分散使用者要求,並從邊緣伺服器直接提供內容,以減少傳送至原始伺服器的流量。

假如有一個主機架在美國的網站:
如果該網站有採用 CDN 服務,用戶在發出 Request 時會被導向位在POP location(如:香港、新加坡)的Edge server去找該網站的快取內容。由於地理位置近,很快就能加載網站。

相反的,如果網站沒有採用CDN,用戶每次發出 Request,都得連線到網站的主機所在地(美國)才能抓到資料,由於地理位置遠,會花更長的時間才能加載網站。

Reference