-
今号では、curl コマンドのオプションについてちょっと詳しくご紹介します!
-
-o オプション (コンテンツをファイル出力する)
取得したコンテンツをファイル出力します。
各項目の意味について、それぞれ確認していきます。$ curl http://example.com -o examplefile % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 27 100 27 0 0 3879 0 --:--:-- --:--:-- --:--:-- 4500 $ cat examplefile This is example index page
※Time という項目が 3つあるため、それぞれ色を変更して表示しています。
・% Total: 全データ量に対する、ダウンロード済みデータ量の割合
・% Received: 受信した全データ量に対する、ダウンロード済みデータ量の割合
・% Xferd: 送信する全データ量に対する、送信済みデータ量の割合
・Average Speed: ダウンロードもしくはアップロードの平均速度 (1秒あたり)
・Time: これまでにかかった時間
・Time: 全体のダウンロードもしくはアップロード時間
・Time: 残りのダウンロードもしくははアップロード時間
・Current: 現在のダウンロードもしくはアップロード速度 (1秒あたり) -
-v オプション (コンテンツ取得時の詳細なログを表示する)
コンテンツを取得した際の詳細なログ (レスポンスヘッダの内容や HTTP ステータスコード等) を表示します。
各項目の意味について、それぞれ確認していきます。$ curl -v http://example.com 1 * About to connect() to example.com port 80 (#0) 2 * Trying 127.0.0.1... 3 * Connected to example.com (127.0.0.1) port 80 (#0) 4 > GET / HTTP/1.1 5 > User-Agent: curl/7.29.0 6 > Host: example.com 7 > Accept: */* 8 > 9 < HTTP/1.1 200 OK 10 < Date: Wed, 20 Jul 2022 20:12:42 GMT 11 < Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips 12 < Last-Modified: Wed, 20 Jul 2022 19:15:01 GMT 13 < ETag: "1b-5e4416af2a4ab" 14 < Accept-Ranges: bytes 15 < Content-Length: 27 16 < Content-Type: text/html; charset=UTF-8 17 < 18 This is example index page 19 * Connection #0 to host example.com left intact
※各項目についての説明をするため、左に番号を記載しています。
・1 行目: 接続しようとしている URL (example.com) およびポート (80)
・2 行目: 接続しようとしている IP アドレス (127.0.0.1)
・3 行目: 記載の URL (example.com)、IP (127.0.0.1) に接続完了
・4 ~ 8 行目: リクエストヘッダの内容
4 行目: HTTP メソッド (GET)、HTTPバージョン (1.1)
5 行目: curl のバージョン (7.29.0)
6 行目: リクエスト先のホスト名
7 行目: レスポンスを受け取る際に、受け入れを許可するコンテンツタイプ
(この場合、すべてのコンテンツタイプを許可)
・9 ~ 17 行目: レスポンスヘッダの内容
9 行目: HTTPバージョン (1.1)、ステータスコード (200)、ステータスメッセージ (OK)
10 行目: レスポンスヘッダが作成された日時
11 行目: Web サーバ (この場合は Apache)、および OpenSSL のバージョン
12 行目: コンテンツの最終更新日時
13 行目: エンティティタグ (コンテンツの識別子)
14 行目: Range に対応している (コンテンツの特定部分のみをリクエストできる) 旨を示す
15 行目: レスポンスボディのサイズ (単位:byte)
16 行目: レスポンスボディの種類 (この場合は HTML 形式)、および文字エンコード
(この場合は UTF-8)
・18 行目: コンテンツの内容
2022年 7月 27日にご紹介した「知っておくとちょっと便利!curl コマンドの使い方をご紹介」
では、よく使用されると考えられるオプションの意味や使い方について簡単にご説明しましたが、
今回は表示される内容を、ちょっと掘り下げて見ていきます。
なお、-I オプション を指定した際に出力される内容と、上記 9 ~ 17 行目で表示される
内容は同じものになっています。
$ curl -I http://example.com HTTP/1.1 200 OK Date: Wed, 20 Jul 2022 20:14:49 GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips Last-Modified: Wed, 20 Jul 2022 19:15:01 GMT ETag: "1b-5e4416af2a4ab" Accept-Ranges: bytes Content-Length: 27 Content-Type: text/html; charset=UTF-8