人們每天接觸的大多數網站和應用程序都沒有一個物理位置,但網站或應用程序上的內容(如圖像、文本和視頻)仍然需要通過電線傳輸到整個世界。它的工作原理是這樣的:如果網站的服務器位于紐約市,那么波士頓的人們將比舊金山或東京的人們更快地獲取內容。客戶離公司的數據中心越遠,網站或應用程序加載越慢——造成不一致和令人沮喪的用戶體驗。
任何長度的滯后時間都會讓習慣于實時數字體驗的網絡和移動用戶感到沮喪。根據LoadStorm:
25% 的用戶會放棄加載時間超過 4 秒的網站。
74% 的用戶會放棄加載時間超過 5 秒的移動網站。
46% 的用戶不會返回性能不佳的網站。
這個問題可以通過內容交付網絡 (CDN) 解決。
什么是CDN?
一個CDN是基于其地理位置更迅速和有效地提供從您的網站或移動應用內容的人,一個辦法。CDN由遍布世界各地的服務器網絡(“存在點”或 POP)組成。離用戶最近的CDN服務器被稱為“邊緣服務器”——當人們從通過 CDN 提供服務的網站請求內容時,他們會連接到最近的邊緣服務器,以確保最佳的在線體驗。
想象一下,您在舊金山,并且在 5300 英里外的倫敦的服務器上請求了圖像。發送請求和接收響應通常需要大約 300 毫秒。如果您要從距離舊金山約 50 英里的圣何塞的服務器請求相同的圖像,則發送請求并獲得響應將需要大約 10 毫秒的時間。這比第一種情況好 30 倍,但因為我們以毫秒為單位說話,所以差異可能無法察覺。然而,當人們考慮到一個典型的網頁可以包含分布在 30 個請求中的超過 2 兆字節的信息時,這種幾乎察覺不到的差異是巨大的。因為瀏覽器只發出少量并發請求,每個請求可能涉及到服務器的多次往返,這些毫秒加起來就是很多秒,使網站變慢。
CDN是如何工作的?
為了避免因慢速服務造成用戶不滿意,CDN將內容移近用戶,以減少延遲并改善用戶體驗。從理論上講,這是整潔、優雅且不言自明的。然而,在實踐中,存在一些非常棘手的技術挑戰。
首先,為了減少任何特定用戶的延遲,CDN必須有一個內容緩存服務器——一個緩存——離他們很近。不幸的是,為每個可能的互聯網用戶都擁有一個附近的緩存是不可行的。相反,我們將緩存組織到 PoP 中,將它們分布在大的地理區域(歐洲、美國、亞洲等),然后將它們放置在這些區域內的主要人口中心。
接下來,給定單個用戶的請求,CDN必須將其定向到最近的 POP。大多數 CDN 通過利用一種稱為 GeoIP 的技術來做到這一點。GeoIP 可以被認為是一個將 IP 地址映射到地理區域(國家、城市等)的大型查找表。在處理請求時,CDN將引用該表并將用戶的流量定向到最近的可用服務器。
將內容緩存到CDN
您可以在CDN上緩存(臨時存儲)您的內容,以便將其從邊緣交付給最終用戶的速度比必須從源頭一直交付要快得多。如果您使用CDN,這意味著如果有人試圖從您的網站或移動應用程序訪問內容,那么該人對內容的請求只需前往附近的 POP 并返回,而不是一直到達公司的源服務器并返回.
可以將緩存視為大型鍵值存儲。當請求進來時,緩存的工作是確定用戶請求什么、定位數據并將其發送回用戶。 有許多請求信息可用于確定要提供的內容。這可以包括域名、路徑、查詢參數甚至標題等內容。緩存采用多級查找表,使用優化算法在最短的時間內找到正確的內容。CDN還會不斷清除(刪除和更新)內容,以便提供最新的相關內容。清除也稱為內容失效,允許企業在必要時更新內容。