curlコマンドの--verboseオプションの見方を解説

目次

スポンサードリンク

curlコマンドとは

curlコマンドはサーバーとの間でデータ転送するためのツールです。用途の似たコマンドに wgetコマンドがありますが、wgetコマンドと比較してcurlコマンドは対応するプロトコルが豊富な点が特徴です。

curlコマンドの基本構文は以下です。コマンドの後にオプション、HTTPやFTPなどのプロトコルで通信するサーバーのURLを入力します。

curl [オプション] [URL]

–verboseオプションを指定すると、各種ヘッダー情報などの追加情報を表示することができます。

–verboseオプション を指定した際の出力の見方

–verboseオプション を指定すると以下のように各種ヘッダーや追加情報が表示されます。それらの情報は標準エラー出力に出力されます。

URLの後に続く、 1> /dev/null は、標準出力を表示しない指定です。標準出力にはURLで指定したページのHTMLソースなどレスポンスボディ部分が出力されますが、今回はヘッダー情報などを見やすいように非表示にしました。

[root@hostname tmp]# curl --verbose https://uchy.me/blog/ 1> /dev/null
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* About to connect() to uchy.me port 443 (#0)
*   Trying 49.212.235.185...
* Connected to uchy.me (49.212.235.185) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
*       subject: CN=uchy.me
*       start date: Apr 28 15:45:03 2024 GMT
*       expire date: Jul 27 15:45:02 2024 GMT
*       common name: uchy.me
*       issuer: CN=R3,O=Let's Encrypt,C=US
> GET /blog/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: uchy.me
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 22 May 2024 14:46:32 GMT
< Content-Type: text/html
< Content-Length: 20774
< Connection: keep-alive
< Last-Modified: Wed, 22 May 2024 14:01:32 GMT
< ETag: "5126-6190b5f272700"
< Accept-Ranges: bytes
<
{ [data not shown]
100 20774  100 20774    0     0   106k      0 --:--:-- --:--:-- --:--:--  106k
* Connection #0 to host uchy.me left intact

「>」で始まる行はcurlによって送信された「ヘッダーデータ」です。 リクエストライン「GET /blog/ HTTP/1.1」に始まり、リクエストヘッダー情報が続きます。

「<」はcurlによって受信された、通常では隠されている「ヘッダーデータ」です。レスポンスヘッダーのヘッダー名と値がコロンで区切られ表示されています。

「*」で始まる行は、curl によって提供される追加情報です。TLS handshakeやサーバー証明書に関する情報などが表示されています。

その他の情報として、ヘッダー情報の前後に、サイズや経過時間などダウンロードの進捗が表示されています。進捗の表示が邪魔な場合は、–silent オプションを付けると非表示にできます。

[root@hostname tmp]# curl --verbose --silent https://uchy.me/blog/ 1> /dev/null
* About to connect() to uchy.me port 443 (#0)
*   Trying 49.212.235.185...
* Connected to uchy.me (49.212.235.185) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
*       subject: CN=uchy.me
*       start date: Apr 28 15:45:03 2024 GMT
*       expire date: Jul 27 15:45:02 2024 GMT
*       common name: uchy.me
*       issuer: CN=R3,O=Let's Encrypt,C=US
> GET /blog/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: uchy.me
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 22 May 2024 14:56:03 GMT
< Content-Type: text/html
< Content-Length: 20774
< Connection: keep-alive
< Last-Modified: Wed, 22 May 2024 14:01:32 GMT
< ETag: "5126-6190b5f272700"
< Accept-Ranges: bytes
<
{ [data not shown]
* Connection #0 to host uchy.me left intact



Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon