ブラウザはホスト名ごとに「 2つまたは4つの」コンポーネントしか並行してロードできないため、HTTPリクエストの数を減らすと、ユーザーのページのロード時間が短縮されることを知っています。
しかし、ブラウザがホスト名ごとに「2つまたは4つの」コンポーネントしか並行してダウンロードできない理由についての情報がどこにも見つからないようです!?これはHTTPのブラウザの制限ですか?
ブラウザはホスト名ごとに「 2つまたは4つの」コンポーネントしか並行してロードできないため、HTTPリクエストの数を減らすと、ユーザーのページのロード時間が短縮されることを知っています。
しかし、ブラウザがホスト名ごとに「2つまたは4つの」コンポーネントしか並行してダウンロードできない理由についての情報がどこにも見つからないようです!?これはHTTPのブラウザの制限ですか?
これはRFC2616「ハイパーテキスト転送プロトコル-HTTP/1.1」でカバーされています:
持続的接続を使用するクライアントは、特定のサーバーに対して維持する同時接続の数を制限する必要があります(SHOULD)。シングルユーザークライアントは、サーバーまたはプロキシとの接続を2つ以上維持するべきではありません(SHOULDNOT)。プロキシは、別のサーバーまたはプロキシへの最大2 * Nの接続を使用する必要があります。ここで、Nは同時にアクティブなユーザーの数です。これらのガイドラインは、HTTP応答時間を改善し、輻輳を回避することを目的としています。
また、このRFCは、強力なサーバーやネットワークキットなどがはるかに少ない1999年に作成されたことを覚えておく必要があります。
現在、ほとんどのブラウザは2つ以上の接続をサポートしており、6つが非常に一般的です。
ブラウザがサポートするホスト名への並列接続の数の最新リストが必要な場合は、http://www.browserscope.org/?category=networkを参照してください。
また、並列接続が悪化する可能性のある「bufferbloat」に関するJimGettyの記事の一部を読み上げることもできます。