CDN(Content Delivery Network 或 Content Distribution Network),中文名叫「內容分發網絡」。算法
靜態資源 & 動態資源緩存
只有靜態資源纔可以被緩存加速、就近訪問,而動態資源只能由源站實時生成,即便緩存了也沒有意義。網絡
不過,若是動態資源指定了「Cache-Control」,容許緩存短暫的時間,那它在這段時間裏也就變成了「靜態資源」,能夠被 CDN 緩存加速。負載均衡
備註:關於靜態資源和動態資源,更準確的說法是:只要Cache-Control容許緩存,就是靜態資源,不然就是動態資源。ide
CDN:spa
有兩個關鍵組成部分:全局負載均衡和緩存系統,對應的是 DNS 和 緩存代理。代理
全局負載均衡(Global Sever Load Balance)資源
簡稱爲 GSLB,它是 CDN 的「大腦」,最多見的實現方式是「DNS 負載均衡」技術。it
主要職責是當用戶接入網絡時在 CDN 專網中挑選一個「最佳」節點提供服務,解決的是用戶如何找到「最近的」邊緣節點,對整個 CDN 網絡進行「負載均衡」。io
緩存系統
至關於 CDN 的「心臟」,使用HTTP緩存代理技術。若是緩存系統的服務能力不夠,不能很好地知足用戶的需求,那 GSLB 調度算法再優秀也沒有用。
命中 & 回源
「命中」就是指用戶訪問的資源剛好在緩存系統裏,能夠直接返回給用戶。
「回源」則正相反,緩存裏沒有,必須用代理的方式回源站取。