CDN
CDN(內容分發網路)是一組分佈在多個位置的伺服器。這些伺服器儲存資料的副本,以便伺服器可以根據與相應終端使用者最近的伺服器來滿足資料請求。CDN 可以提供快速服務,並且受高流量影響較小。
CDN 被廣泛用於分發 Bootstrap、jQuery 等庫的樣式表和 JavaScript 檔案(靜態資源)。出於多種原因,為這些庫檔案使用 CDN 是更優的選擇:
- 透過 CDN 提供庫的靜態資源可以減輕組織自身伺服器的請求負擔。
- 大多數 CDN 在全球都有伺服器,因此 CDN 伺服器在地理位置上可能比您自己的伺服器更接近您的使用者。地理距離與延遲成正比。
- CDN 已配置了適當的快取設定。使用 CDN 可以節省您在自己伺服器上對靜態資源的進一步配置。
事實上,整個網站都可以透過 CDN 提供服務,尤其是完全由靜態 HTML、CSS 和 JavaScript 檔案組成的靜態網站。
與自行託管靜態資源相比,使用 CDN 也有缺點:
- 它引入了對第三方服務的額外依賴。如果 CDN 宕機、在某個區域被遮蔽或永久關閉,您的網站將無法正常執行。
- 它引入了額外的攻擊向量。攻擊者可能會入侵 CDN 並向您的使用者提供惡意內容。這就需要採取子資源完整性 (SRI) 等對策。
- 與普遍的看法相反,CDN 實際上可能會降低效能。透過與第三方網站建立連線,使用者的瀏覽器必須經歷更多的 DNS 查詢、內容協商等過程。此外,出於隱私原因,現代瀏覽器不會在不同來源之間共享同一資源的快取,因此使用者無論如何都必須在不同的網站上多次下載相同的資源(例如 jQuery)。
另見
- 自行託管您的靜態資源,作者:Harry Roberts (2019)