コンテンツの効率性の最適化

ウェブ アプリケーションは、その対象範囲、規模、機能の点で成長を続けています。それは良いことですが、ウェブを充実させるための絶え間ない進歩は、アプリケーションでダウンロードされるデータの量も一定のペースで増え続ける、という傾向も招いています。パフォーマンスを最適にするには、バイト 1 つ 1 つの配信を最適化することが必要です。

最近のウェブ アプリケーションはどうなっているのでしょうか。この答えは HTTP Archive で見つかります。このプロジェクトでは、人気の高いサイト(Alexa の上位 100 万件のサイトリストのうち 300,000 件以上)をクロールし、各サイトのリソースの数、コンテンツの種類、その他のメタデータに関する分析を記録し集約することで、ウェブがどのように構築されているかを追跡しています。

HTTP Archive の傾向

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 を入力すれば終わりです。それがウェブの主となる特徴です。しかし、このためには、数十、場合によっては数百という各種リソースを取得する必要があり、それをすべて加算するとデータ容量は数メガバイトになる可能性があります。また、目的とするウェブ エクスペリエンスを瞬時に提供するには数百ミリ秒単位でまとめて受信することも必要です。

これらの要件を踏まえてウェブ エクスペリエンスを瞬時に実現することはやさしいことではありません。だから、コンテンツの効率性を最適化することは重要なのです。不要なダウンロードを取り除き、さまざまな圧縮技術で各リソースの転送エンコードを最適化し、冗長なダウンロードを取り除くことが可能な場合は常にキャッシュを利用することです。