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

【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。

【7/5開催】azd+Terraform? ~ポイントを押えてAzure上へのアプリケーション環境をラクチン構築~
ツールの概要説明から、実際の開発におけるポイントをお伝えします!

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!

    今号では、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
    
    アバター画像
    About 貝野 友香 73 Articles
    OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
    ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる