コンテンツ効率の最適化

ウェブ アプリケーションの範囲、野心、機能はますます拡大しています。これは良いことです。しかし、より豊かなウェブへのたゆまぬ進歩は、別のトレンドも引き起こしています。それは、各アプリケーションによってダウンロードされるデータの量が着実に増加し続けていることです。優れたパフォーマンスを実現するには、1 バイト単位で配信を最適化する必要があります。

モダン ウェブ アプリケーションとはどのようなものですか?この疑問に答えるには、HTTP アーカイブを使用します。このプロジェクトでは、最も人気のあるサイト(Alexa のトップ 100 万リストの 30 万件以上)を定期的にクロールし、個々のリンク先のリソース数、コンテンツ タイプ、その他のメタデータに関するアナリティクスを記録して集約することで、ウェブの構築方法を追跡しています。

HTTP アーカイブの傾向

50 パーセンタイル 75 パーセンタイル 90 パーセンタイル
HTML 13 KB 26 KB 54 KB
画像 528 KB 1,213 KB 2,384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
その他 282 KB 308 KB 353 KB
合計 1,054 KB 1,985 KB 3,486 KB

上記のデータは、2013 年 1 月から 2014 年 1 月までのウェブ上の人気のあるリンク先のダウンロードされたバイト数の増加傾向を示しています。もちろん、すべてのサイトが同じ速度で成長するわけではありませんし、同じ量のデータが必要になるわけではありません。そのため、分布内のさまざまな分位(50 番目(中央値)、75 番目、90 番目)をハイライト表示しています。

2014 年の初めのサイトの中央値は、75 件のリクエストで構成され、転送されるバイト数の合計は 1, 054 KB です。バイト数(およびリクエスト数)の合計は、昨年を通して着実に増加しています。これはそれほど驚くべきことではありませんが、パフォーマンスに重要な影響を与えます。インターネットの速度は向上していますが、国によって向上の速度は異なり、多くのユーザーは、特にモバイルでは、データ上限や高額な従量制プランの対象となっています。

デスクトップ アプリケーションとは異なり、ウェブ アプリケーションには個別のインストール プロセスは必要ありません。URL を入力するだけで、すぐに使用を開始できます。これがウェブの重要な特徴です。ただし、これを実現するには、多くの場合、数十個、時には数百個ものさまざまなリソースを取得する必要があります。これらのリソースはすべて数メガバイトのデータに達する可能性があり、Google が目指す即時ウェブ エクスペリエンスを実現するために、数百ミリ秒以内に統合する必要があります。

こうした要件を踏まえて即時ウェブ エクスペリエンスを実現することは容易ではありません。そのため、コンテンツの効率を最適化することが重要です。具体的には、不要なダウンロードを排除し、さまざまな圧縮手法によって各リソースの転送エンコードを最適化し、可能な限りキャッシュを利用して冗長なダウンロードを排除します。