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ホスト(主にサーバーを指す)ごとに接続数が制限されている点。レスポンスを返すホストを分散させれば、同時接続数を増やせることになります。具体的な方法は次回以降で紹介したいと思います。
- 修正履歴
-
- 2013/04/02 15:45 タイトルを修正いたしました
この記事は参考になりましたか?
- これから身につけるWebサイト高速化テクニック連載記事一覧
- この記事の著者
-
野中 龍一(クラスメソッド株式会社)(ノナカ リュウイチ(クラスメソッドカブシキガイシャ))
クラスメソッドで企画、制作、運用までやるWebマスター。Webデザイン、Webサイト高速化、広義のHTML5、JavaScript、jQuery、CSS3、PHP、AWSを広く浅くやってます。クラスメソッド開発ブログを作ってる中の人。http://dev.classmethod.jp/author/nonaka-ryuichi/
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア



