2010年10月2日土曜日

Webサイト高速化技法(5):HTTP/1.0 と HTTP/1.1 の違い

みなさんは自社のWebサイトのHTTPプロトコルのバージョンをご存知でしょうか?

ほとんどのブラウザで「ページの情報を表示」を選択すると、HTMLページのヘッダ情報を見る事ができます。そうすると、下記のような情報をみることができます。

  HTTP/1.1 200 OK
  Date: Sat, 02 Oct 2010 13:12:41 GMT
  Server: Apache/2.2.3 (CentOS)
  X-Powered-By: PHP/5.2.6

これをみると、このページは

  - HTTP プロトコルは 1.1 を採用
  - WebサーバーのOS は CentOS を採用
  - Webサーバーは Apache/2.2.3 を採用
  - PHP 5.2.6 を採用

等といった情報が読み取ることが出来ます。
この、HTTPプロトコルのバージョンがページの表示速度に大きく影響します。

何が違うのか?

大きく2種類の違いを把握すると理解しやすいと思います。

1. 並行処理できる数が大きく違う

Webサーバーとの通信の回数が多いほど、その差は歴然です。以前に「Webサイト高速化技法(1):物理的に近い場所にWebサーバーを置く」http://uehama.blogspot.com/2010/08/webweb.html という記事を書かせてもらってますが、その中で例えば HTML ファイル中に画像が50種類呼ばれているとすると、50個を同時にWebサーバーに取りに行く事はできずに、並行処理をしながら数回に分けて取りに行きます。その同時に出せるリクエストの数が HTTP/1.0 と HTTP/1.1 では違います。なので読み込むファイルの数が多ければ多い程、その差が大きく拡がっていくととになります。

2. 1回のリクエスト/レスポンスの中身が違う

あまり技術的にしたくないので詳細は割愛しますが、HTTP/1.1 ではファイル1個を取りに行く時のリクエストとレスポンスの作業の効率化が図られています。画像ファイル1個を受信しようとした時、複数個のボールをサーバーに投げて複数個に分けて返していたのを、1個のボールの受渡しにまとめた感じです。これも経路が効率化されますので、ページ表示速度が大きく変わります。読み込むファイルの数が多ければ多い程、その差が大きく拡がっていきます。

もうすでに HTTP/1.1 に移行が終了していると思ってましたが

もともと私は全ての企業が HTTP/1.1 に切り替わっていると思っていたので、このような記事を書こうとは思っていなかったのですが、念のため調べてみるとちょっと予想外の結果になったので紹介します。

私が毎週報告している Google Analytics の導入状況調査を利用して、上場企業3828社のプロトコルを調べてみました。すると

HTTP/1.0 の企業がまだ 60 社も残っていました。

明らかにページ表示速度は変わります。変更するのはすぐに出来ますし、予算もかかりませんのですぐにでも変更されるのをおすすめいたします。

みなさんの会社の Webサーバーは HTTP/1.1 になっていますか?

一度確認してみてください。

それでは。