ウェブ アプリケーションは、その対象範囲、目標、機能において成長を続けています。これは良いことです。ただし、ウェブを充実させるための絶え間ない進歩は、別の傾向も強めています。各アプリケーションでダウンロードするデータの量が一定のペースで増え続けているのです。優れたパフォーマンスを実現するには、すべてのバイトの配信を最適化する必要があります。
最近のウェブ アプリケーションの現状を知るには、HTTP Archive のデータが役立つでしょう。このプロジェクトでは、人気のあるサイト(Alexa の上位 100 万のサイトリストから 300,000 サイト以上)を定期的にクロールし、サイト別にリソースの数、コンテンツの種類、その他のメタデータに関する分析を記録し集約することで、ウェブの構築方法を追跡しています。
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 になり、合計バイト数(およびリクエスト数)は、前年を通して一定のペースで増加し続けました。これ自体はそれほど驚くことではありませんが、これはパフォーマンスに関する重大な意味を含んでいます。インターネットの速度は確かに向上してはいるものの、高速化の勢いは国によって異なり、特にモバイル ユーザーなど、多くのユーザーはデータ容量の上限と高額の従量性プランにまだ縛られています。
デスクトップ アプリケーションと異なり、ウェブ アプリケーションは個別のインストール プロセスを必要としません。URL を入力すれば実行されます。それがウェブの重要な特徴です。しかし、このためには、数十から数百に及ぶこともあるさまざまなリソースを取得する必要があります。さらに、すべて合計したデータ量はメガバイト単位になることがあり、目的とする瞬時のウェブ エクスペリエンスを実現するには数百ミリ秒単位で一式を提供する必要があります。
これらの要件を踏まえて瞬時のウェブ エクスペリエンスを実現するのは並大抵のことではありません。これが、コンテンツの効率を最適化することが重要である理由です。不要なダウンロードを回避し、さまざまな圧縮技術で各リソースの転送エンコードを最適化し、可能な場合に必ずキャッシュを利用することで、ダウンロードをの冗長性を排除するのです。