curl -v のログのヘッダー整理
curl -v のログから、実際に送ったヘッダーと返ってきたヘッダーを分けて読む。
curl -v(--verbose)の出力を貼り付けると、行頭の記号をもとに、送ったヘッダーと受け取ったヘッダーを往復ごとの表にします。Authorization などの値は既定で伏せます。ログは端末の外へ送信しません。
curl -v のログを送受信のヘッダーに分ける
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 表示 認証情報を含みうるヘッダーの値 2 件を伏せました。伏せずに見るには「認証情報を伏せる」を外してください。
| 送信した行 | 4 行 |
|---|---|
| 受信した行 | 3 行 |
| 追加情報(*)・データ({ }) | 1 行・1 行 |
| 要点 1 | 送信 1: GET /api HTTP/1.1 |
| 要点 2 | 受信 1: 200 OK |
ヘッダーの一覧
| 回 | 向き | ヘッダー名 | 値 |
|---|---|---|---|
| 1 | 送信 | (要求行) | GET /api HTTP/1.1 |
| 1 | 送信 | Host | example.com |
| 1 | 送信 | Authorization | (伏せました) |
| 1 | 送信 | Accept | */* |
| 1 | 受信 | (状態行) | HTTP/1.1 200 OK |
| 1 | 受信 | Content-Type | application/json |
| 1 | 受信 | Set-Cookie | (伏せました) |
初期表示は入力例「1 往復のログを送受信に分ける」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- ログには認証情報が含まれることがあります。共有する前に、伏せた表示になっているか確認してください。
使い方
- curl に -v を付けて実行し、出力されたログをコピーします(標準エラー出力にも出るので、2>&1 を付けるとまとめて取れます)。
- 「curl -v のログ」に貼り付けます。パスワードやトークンを含むときは、伏せる設定のままにします。
- 表の「向き」が送信のものは、curl が実際に送ったヘッダーです。受信は相手が返したヘッダーです。
- リダイレクトを追ったログでは、「回」の列で往復ごとに見分けられます。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| 1 往復のログを送受信に分ける | エラー 0 件・警告 0 件・情報 1 件 |
| リダイレクトを追った 2 往復のログ | エラー 0 件・警告 0 件・情報 1 件 |
| 受信のヘッダーだけのログ | エラー 0 件・警告 0 件・情報 1 件 |
| -v を付けずに実行した出力を貼ってしまった | エラー 1 件・警告 3 件・情報 0 件 |
このツールでできないこと(制約)
- 行頭の記号は curl のバージョンや設定で変わる場合があります。読めない行は警告して読み飛ばします。
- ヘッダー名や値の正しさ(仕様に沿っているか)は検査しません。ログに出ている内容を分けて並べるだけです。
- --trace や --trace-ascii の出力は形式が違うため読めません。-v(--verbose)のログに対応します。
- ログ全体を貼り付けた場合、ボディ(本文)の内容は読みません。ヘッダーだけを扱います。
よくある質問
ログをそのまま貼ってよいですか?
貼り付けたログはお使いのブラウザの中だけで処理し、サーバーや第三者へ送信・保存しません。ページは通信を禁止する設定で配信しています。ただし他人に見せる前には、認証情報を伏せる設定を使ってください。
送信したヘッダーが出てこないのはなぜですか?
ログに行頭が > の行がないためです。-v を付け忘れたか、接続の前で失敗したログの可能性があります。その場合は受信側だけを表示し、情報で知らせます。
* で始まる行は何ですか?
curl が表示する追加情報で、接続先やTLS の状況などです。ヘッダーではないため表には入れず、件数だけを要点に示します。