知っておくとちょっと便利!curl コマンドのオプションをちょっと詳しくご紹介

    今号では、curl コマンドのオプションについてちょっと詳しくご紹介します!

    2022年 7月 27日にご紹介した「知っておくとちょっと便利!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 行目: コンテンツの内容

    なお、-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
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です