2017-12-23 21 views
0

最近、誰かが「Curl、wgetなどが2つのhttp接続(outとin)とスクリプトの両方を開いてスクリプトを作成するので、一般的に効率が悪い」と言った人もいました。cURLは2つの接続(発信と受信)を開きますか?

投稿者:本書では、curl経由のFTPは2つの接続を利用していますが、それ以上のことはHTTPに関して前の文に真実があるかどうかを判断できません。

基本的なHTTP cURLタスクで2つの接続が作成されるのは本当ですか?

+0

'基本的なHTTP cURLタスクの場合、2つの接続が作成されるのは本当ですか? ' - いいえ、これはブルです。 libcurlは、curl_multiなどを使ってそれを行うことができます。明示的に指示してもカールはそれ自体ではありません。 – hanshenrik

答えて

2

HTTPでは、URLの内容を取得するために1つの接続のみが必要です。これは、フェッチを実行しているプログラムが、Curl、Wget、ブラウザまたは他のプログラムであるかどうかにかかわらず当てはまります。

FTPはファイルを転送するために2つの接続を行います。これは、「制御」アクティビティ(ログイン、ディレクトリの一覧表示、転送の要求など)に1つの長期間接続を使用し、実際のデータ転送を実行するために別の2番目の接続を行います。これはプロトコルの特徴なので、プログラムがCurl、Wget、ブラウザなどのプログラムであるかどうかにかかわらず、リンゴが再びリンゴになります。

関連する問題