パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

HTTPの同時接続数はどうあるべきか?」記事へのコメント

  • 行列や車の割り込みと同じです。
    自分一人だけ割り込みできたら早くなりますが、皆が割り込みするようになったら、混雑してむしろ遅くなります。海外旅行等で経験した人もいると思います。
    なんか囚人のジレンマに似てますね。

    また、サイトによってはサーバ側で同時接続数を制限していることがあります。
    IEやFirefoxの実装は知りませんが、昔ダウンロードソフトの類を使ったとき、(制限で)接続失敗してるのに何度も接続しようとしてかえって遅くなってました。
    ダウンロードが主のサイトでは制限していることが多いので、どうでもいいサイトで若干速くなっても、いざ大きいファイルをダウンロードするときに遅くなったのではむしろ損です。

    以上の理由から、サーバ運営者の迷惑をまるで考えないで利己的に考えても増やさないほうが良いと思います。
    • ダウンロードが主のサイトでは制限していることが多いので、どうでもいいサイトで若干速くなっても、いざ大きいファイルをダウンロードするときに遅くなったのではむしろ損です。

      httpって一つのファイルに複数同時接続しないよね。大きいファイル一つ二つなら同時接続数は関係ないと思う。

      • それはUA次第ですよ。理屈の上ではhttpで分割ダウンロードが可能ですし、いわゆるダウンローダーってやつは、そういう仕組みだと思います。ただ、そこまで先進的(?)なブラウザは聞いたことがないですね。
        • えと、OS/2 ver.3/ver.4に標準でついていたブラウザは一つのHTMLからイメージソースURLなどを複数並行して取得リクエスト出していたような…。

          #細かいことは忘れました。過去の話ですから。
          --
          masamic
          • by Stealth (5277) on 2006年12月21日 11時46分 (#1079454)

            HTTP/1.0 では Keep Alive が使えませんので 1 サーバ当たりの同時接続セッション数を 4 を最大に、HTTP/1.1 では Keep Alive が使えるのでセッションの再利用が出来るため 2 を最大にしている、というのがこのストーリーの基本事項な訳で……。

            HTML を受け取りながら解釈し、解釈中に取得する必要のある画像などが判明したら、空きセッションで取得したり、HTML を取得し終えたセッションを再利用したりするのは極めて普通の挙動です。

            分割ダウンロードの場合は、HTTP/1.1 において定義されているファイルの位置を指定した一部取得機能を利用し、2 つのセッションで同時に 1 つのファイルの別の部分を取得するという話です。当然ながら、この場合にはファイルのサイズを知っていて、かつ、初期リクエストの段階からセッション 1 は最初の 1MB、セッション 2 は 1MB の地点からの 1MB ……といった形でパーツごとに拾っていく形を取ります。

            自分の回線側がボトルネックになっている場合には全く意味がありませんが、サーバの応答側がボトルネックになっている場合 (セッション当たりの帯域を絞っている場合とか) には有効です。

            こんな機構であるため、ある程度大きなファイルを取得する場合でないと有効性があまり大きくないため、一般的な閲覧で分割ダウンロードを行うようなブラウザはまず存在しないと言っていいかと思います。

            そもそもサイズが分からないとできない話ですし、Web ブラウザは普通最初のアクションはサイズを知らない状態で GET で、キャッシュに情報があったら If-Modified-Since を付けた GET ですし。HEAD → GET なんてやられたら、動的コンテンツ全盛の現在ではかなりきついでしょうね。

            親コメント

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

処理中...