SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これから身につけるWebサイト高速化テクニック

Webサイト高速化に必要なHTTPの仕組みを理解する

これから身につけるWebサイト高速化テクニック(2)


  • X ポスト
  • このエントリーをはてなブックマークに追加

HTTPボディとは

 HTTPヘッダーの後ろについているのが、実際に送受信するデータの本体となる部分です。

 リクエストの場合は主にPOSTメソッドなどでデータの送信に利用し、レスポンスの際はHTMLなどが入ります。

HTTP1.0と1.1の違い

 HTTP1.0について詳しく知る必要はありませんが、HTTP1.1から追加されたTCP接続を維持するための仕組みKeep-Aliveについて知るために、HTTP1.0と1.1の違いについて紹介したいと思います。

 まずは、HTTP1.0と1.1の通信について表した以下の図を見てください。

 この図のHTTP1.0(左)、1.1(右)ではそれぞれ2回のHTTPリクエスト/レスポンスを行っています。

 HTTP1.0の場合、TCP接続の確立・解放が2度行われているので、無駄があるように感じます。

 これに対してHTTP1.1では持続的接続(Keep-Alive)が可能になったことにより、リクエスト/レスポンスの際の無駄なTCP接続の再確立を減らすことができるようになりました。

 またHTTP1.1では、1つのIPアドレスでホストごとに返すコンテンツを制御できるバーチャルホストが追加されたことも大きな違いです。

HTTP1.1のブラウザ別同時接続数

 また、HTTP1.1には同時接続数という、もう一つのポイントがあります。同時接続数とは、ブラウザがサーバーにリクエストを送った際に、同時にデータのやり取りを行える最大接続数を表します。

 多ければ多いほど良いのですが、この同時接続数の制限は接続ホストごとに設けられています。本来、HTTPの同時接続数は「2」が推薦されていますが、最近のブラウザは「6」としているようです。

 以下が実際に調べた最近のブラウザの同時接続数です。

IE6 IE7 IE8 IE9 Firefox Chrome Safari
2 2 6 6 6 6 6

 同時接続数が2本の場合と6本の場合、どのように違うのか道路の車線数で表現してみます。

 IE6,7は車線が2本しかないので、それほど多くの車をゴール地点に移動させることができません。

 IE8,9,Firefox,Chrome,Safariは車線が6本なので、IE6,7に比べ3倍の車をゴールに移動させることができますね。このように、同時接続数の制限がWebサイトのパフォーマンスに大きく影響します。

 ここでポイントになるのは、1ホスト(主にサーバーを指す)ごとに接続数が制限されている点。レスポンスを返すホストを分散させれば、同時接続数を増やせることになります。具体的な方法は次回以降で紹介したいと思います。

※注意
 同時接続数はクライアント側で変更が可能ですが、サーバーの負荷に繋がるため、意図的に増やすことは推薦されていません。

次のページ
少し未来のSPDYとHTTP2.0

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これから身につけるWebサイト高速化テクニック連載記事一覧

もっと読む

この記事の著者

野中 龍一(クラスメソッド株式会社)(ノナカ リュウイチ(クラスメソッドカブシキガイシャ))

クラスメソッドで企画、制作、運用までやるWebマスター。Webデザイン、Webサイト高速化、広義のHTML5、JavaScript、jQuery、CSS3、PHP、AWSを広く浅くやってます。クラスメソッド開発ブログを作ってる中の人。http://dev.classmethod.jp/author/nonaka-ryuichi/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7065 2013/04/02 15:54

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング