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

フリーの国産ダウンローダ「Irvine」が開発停止&ソース公開」記事へのコメント

  • 結構こだわりある人がいるようですが、
    ブラウザの右クリックで充分間に合ってる自分には今一つピンときません。

    ダウンローダというのは具体例にどういう使われ方をしているのでしょう?
    • by Anonymous Coward
      分割ダウンロードや、ディレクトリイメージごとごっそりに使われ、 いっぺんに70コネクション占有され、この手のダウンローダは "イタイもの"らしい。

      もちろんソフトウエアに罪はなく、使い手のモラルの 欠如が問題なのである。
      • by Anonymous Coward
        うむ。すごく困る。

        だれか Apache で同一IPからの複数接続はじくような
        設定知らない? もしくはそういったモジュールある?
        おしえてください。おながいします。
        • 最近だと、普通にページを取得するときにでも並列化してませんか?
          もちろん設定によるのですが、Mozillaだと

          Advanced->HTTP Networking

          にEnable pipelineというのがありますね。
          サーバの設定でできるできないというものらしいですが
          --
          -- やさいはけんこうにいちば〜ん!
          • ええと、HTTP request pipelining は並列取得とは無関係で、最近に限らなくても割と昔から大抵のブラウザは1ページの中の画像とかは5並列とかで落していたはずです……。(NN3 か NC4 かどちらかは並列数の設定があったんだけど、 最近の Mozilla とかは表には設定項目見えないですね。)

            HTTP request pipelining というのは、HTTP/1.1 の Keep-alive を使って1つの TCP 接続で連続してファイルを取得する (TCP の繋ぎ直しという重い作業をしないのでネットワークにもサーバにもやさしい) 時に、1つめのファイルの転送が終了する前に2つ目のリクエストを送っておくことを指すはずです。

            サーバが1つ目のファイルを送信終了し次第すぐに次のリクエストを読み出せたり、あるいは1つめのファイルを送信中に次のファイルを用意できるようになるので、リクエスト間のタイムラグをなくしたり、TCP の通信効率を上げたることが可能だと思われます。

            # Mozilla のソースは読んでいないので万が一くらいは違うかも
            # 知れないけど、少なくとも HTTP/1.1 (RFC2068) で規定した
            # 単語だし、Keep-alive を切ると無効になる設定項目なので、
            # これで間違いないと思います。

            サーバ側の処理は (わざわざ凝ったことをしなければ) 相変わらず同時には1ファイルしか送らないので、サーバへの負荷は「回線がちょっと速くなったみたい(回線遅延が減った)」という程度しか変わらないのではないかと思います。

            Mozilla で注意書きがあるのは、サーバの設定云々というよりは、(1) HTTP/1.1 サーバの誤実装 or (2) HTTP/1.0 サーバで2つめのリクエストをクライアントからのゴミだと認識する (or (3) Mozilla のバグ(?)) のどれかで現状ではうまく動かないことがある、ということだと思います。
            親コメント
            • keep-aliveとpipelineは若干異なります。
              keep-aliveは、一本のTCP接続でリクエスト/レスポンスを繰り返します。
              pipelineは、一本の接続で、複数のリクエストを先行して送信し、複数のレスポンスを順次受け取るものです。

              ネットワーク効率が良くなり、httpデーモンへのリクエスト頻度がその分増える事になると思います。
              親コメント
              • ん? まぁ結論変わらないんで構わないんですけど……。RFC 2068 の8節見てもらうとわかるんですけど、位置づけとしてはPipelining は Persistent connection (いわゆる keep-alive) の一部です。

                とにかく1つのコネクションでたくさん (>=2) 取って来ることができるのが persistent connection で、接続を keep するか close するかは最終的にはリクエスト毎にサーバが決めて通知することになってます。で、サーバの都合を聞かずにとりあえず keep だと思って次の要求を勝手に送りつけておいて、拒絶されたらその時考えよう、というのが pipelining です。

                少し前に自分で persistent connection を使う HTTP client (wget モドキ) を書いていて、サーバから「あと何リクエストまでOK」という値が返ってくるので「何のために使うんだろう」と思ってたんですが、pipelining するケースだと有効な情報なんですね……。
                親コメント

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

処理中...