ウェブ アプリケーションの範囲、野心、機能はますます拡大しています。これは良いことです。しかし、より豊かなウェブへのたゆまぬ進歩は、別のトレンドも引き起こしています。それは、各アプリケーションによってダウンロードされるデータの量が着実に増加し続けていることです。優れたパフォーマンスを実現するには、1 バイト単位で配信を最適化する必要があります。
モダン ウェブ アプリケーションとはどのようなものですか?この疑問に答えるには、HTTP アーカイブを使用します。このプロジェクトでは、最も人気のあるサイト(Alexa のトップ 100 万リストの 30 万件以上)を定期的にクロールし、個々のリンク先のリソース数、コンテンツ タイプ、その他のメタデータに関するアナリティクスを記録して集約することで、ウェブの構築方法を追跡しています。
上記のデータは、2013 年 1 月から 2014 年 1 月までのウェブ上の人気のあるリンク先のダウンロードされたバイト数の増加傾向を示しています。もちろん、すべてのサイトが同じ速度で成長するわけではありませんし、同じ量のデータが必要になるわけではありません。そのため、分布内のさまざまな分位(50 番目(中央値)、75 番目、90 番目)をハイライト表示しています。
2014 年の初めのサイトの中央値は、75 件のリクエストで構成され、転送されるバイト数の合計は 1, 054 KB です。バイト数(およびリクエスト数)の合計は、昨年を通して着実に増加しています。これはそれほど驚くべきことではありませんが、パフォーマンスに重要な影響を与えます。インターネットの速度は向上していますが、国によって向上の速度は異なり、多くのユーザーは、特にモバイルでは、データ上限や高額な従量制プランの対象となっています。
デスクトップ アプリケーションとは異なり、ウェブ アプリケーションには個別のインストール プロセスは必要ありません。URL を入力するだけで、すぐに使用を開始できます。これがウェブの重要な特徴です。ただし、これを実現するには、多くの場合、数十個、時には数百個ものさまざまなリソースを取得する必要があります。これらのリソースはすべて数メガバイトのデータに達する可能性があり、Google が目指す即時ウェブ エクスペリエンスを実現するために、数百ミリ秒以内に統合する必要があります。
こうした要件を踏まえて即時ウェブ エクスペリエンスを実現することは容易ではありません。そのため、コンテンツの効率を最適化することが重要です。具体的には、不要なダウンロードを排除し、さまざまな圧縮手法によって各リソースの転送エンコードを最適化し、可能な限りキャッシュを利用して冗長なダウンロードを排除します。