最佳化內容效率

伊利亞 (Ilya Grigorik)
Ilya Grigorik

我們的網路應用程式在範圍、目標和功能上持續增加,這是好消息。然而,持續朝更豐富的網路發展,也帶動了另一個趨勢:每個應用程式下載的資料量持續穩定成長。如要提供卓越的效能,我們必須最佳化每個位元組的傳送!

現代化網頁應用程式的外觀為何?HTTP 封存能協助我們解答這個問題。專案會追蹤我們如何定期檢索最熱門的網站 (從 Alexa 1M 排名前 100 萬 多出的 30 萬個網站),並記錄及匯總每個目的地的資源、內容類型和其他中繼資料的分析數據。

HTTP 封存趨勢

第 50 個百分位數 第 75 個百分位數 第 90 個百分位數
HTML 13 KB 26 KB 54 KB
圖片 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
其他 282 KB 308 KB 353 KB
總計 1054 KB 1985 KB 3486 KB

上述資料擷取了 2013 年 1 月至 2014 年 1 月期間,網路上熱門目的地的下載位元組數量變化趨勢。當然,成長速度不是每個網站成長速度都一樣,也不一定需要的資料量相同,因此我們才會特別標明不同的分位數:第 50 個 (中位數)、75 日和 90 日。

2014 年年初的網站中位數是由 75 項要求組成,總和的位元組數增加至 1054 KB,位元組總數 (和要求數量) 則是前一年穩定成長。光是這樣就不能光是出乎意料,但是確實影響效能的重要因素是:是,網際網路速度在各國家/地區的速度更快,但速度也各不相同,且許多使用者仍須遵守數據用量上限和昂貴的計量付費方案,特別是行動裝置。

與桌上型電腦不同的是,網路應用程式不需要個別的安裝程序:輸入網址,然後我們完成設定並開始運作,這是網路的主要功能。然而,為了實現這個目標,我們通常需要擷取數十個,有時各種資源,這些資源可能會增加幾 MB 的資料量,而這些資源也必須在數百毫秒內整合,才能打造出我們注重的免安裝網路體驗。

實現這些需求的免安裝網路體驗並不容易,因此最佳化內容效率至關重要,關鍵在於消除不必要的下載、透過各種壓縮技術最佳化每項資源的傳輸編碼,以及盡可能使用快取來排除多餘的下載內容。