web-dev-qa-db-ja.com

libcurlメッセージと実行プロセスの意味

サーバーから_abc-1.tar_ファイルを取得するためにlibcurlライブラリを使用しています。このメッセージを表示するlibcurlの表示と実行のプロセスであるメッセージの意味を知りたい。

例:_Content-Length_がダウンロードされるファイルの長さを意味するなどの基本的なメッセージの意味を知っていることから、以下のいくつかのメッセージを提供します。

すべてのメッセージ、特に_*_で始まるメッセージの意味が必要です(例:Connection #0 to Host (nil) left intact

_* Re-using existing connection! (#0) with Host (nil)
* Connected to (nil) (182.72.67.14) port 65101 (#0)
GET /...... HTTP/1.1
Host: 182.72.67.14:65101
Accept: */*
Connection:keep-alive
< HTTP/1.1 200 OK
< Cache-Control: private
< Content-Length: 186368
< Content-Type: application/x-tar
< Server: Microsoft-IIS/7.5
< Content-Disposition: attachment; filename=abc-1.tar
< X-AspNet-Version: 4.0.30319
< X-Powered-By: ASP.NET
< Date: Tue, 01 Oct 2013 06:29:00 GMT
< 
* Connection #0 to Host (nil) left intact
_
16
harshal bhavsar

cURL's Man Page は、3つのタイプの「特別な」冗長出力を指定します。

'>'で始まる行は、curlによって送信された「ヘッダーデータ」を意味し、 '<'は、通常の場合非表示である、curlによって受信された「ヘッダーデータ」を意味し、 '*'で始まる行は、curlによって提供される追加情報を意味します。

HTTPヘッダーフィールド については HTTP公式公開ページ を参照してください。 cURLによって表示されるその他の出力行は、対応するメッセージによって運ばれるHTTP本文に属します。

では、_*_で始まるこれらの情報の実際の意味は何ですか?転送のTCPホストとの接続のステータスについて通知します。例えば:

  • "Connected to (nil) (182.72.67.14) port 65101 (#0)"は、TCP接続がサーバー側で確立されていることを意味します(あなたの場合:182.72.67.14)。_#0_はTCPセッション番号(cURLでのみ使用されます)nilは、ホスト名をDNSで解決できなかったことを示します(解決された場合、nilの代わりに表示されます)。

  • "Connection #0 to Host (nil) left intact"は、転送が終了しても、TCPセッション自体がまだ開いている(ieFIN/ACK交換は行われていません)、同じTCP接続を複数の転送に再利用し続けることができます(新しい接続を開くときに時間を犠牲にしたくない場合に役立ちます) TCP接続)。

    メッセージ"Re-using existing connection! (#0) with Host (nil)"はこれをサポートし、cURLが実際に既存のTCP=接続(以前の転送から))に乗ることを示します。

33
Eitan T

<でマークされているのはHTTPヘッダーです。httpヘッダーとその意味について詳しく読むことができます here でマークされ、*でマークされているのはcurlによって提供される詳細情報ですstderrに表示されます。

2
Arya