cURL チートシート

cUrl 有用コマンドとパラメータ

最も便利な cURL コマンドのチートシートです。パラメータ付きでまとめました:

カールサインを持った人物

上記の画像は Flux - テキストから画像生成する AI モデルによって生成されました。

cURL は HTTP リクエストの発行やデータ転送に不可欠なコマンドラインツールです。Git、Docker、VS Code、bash、Terraform、PostgreSQL、GitHub Actions、Linux パッケージ管理を含む開発者ツール全般の包括的なガイドについては、開発者ツール: モダンな開発ワークフロー完全ガイドをご覧ください。

cURL の基本使い方

  • ファイルのダウンロード: curl http://example.com/file.zip -o file.zip
  • 複数ファイルのダウンロード: curl -O URL1 -O URL2
  • リダイレクトの追従: curl -L http://example.com/file
  • ヘッダーのみを表示: curl -I http://example.com

認証

  • Basic 認証: curl -u username:password http://example.com. cURL はこのユーザー名とパスワードから Authorization: Basic ヘッダーを設定します。printf と base64 で構築される同じヘッダーについては、Base64 エンコード/デコード チートシートを参照してください。
  • .netrc ファイルの使用: curl --netrc-file .netrc http://example.com

HTTP メソッド

  • POST リクエスト: curl -X POST -d 'name=value' http://example.com
  • PUT リクエスト: curl -X PUT -d @file http://example.com
  • カスタムメソッド: curl -X METHOD http://example.com

ヘッダーとデータ

  • カスタムヘッダーの追加: curl -H "X-Header: Value" http://example.com
  • JSON データの送信: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • フォームデータの送信: curl -F "key=value" -F "file=@localfile" http://example.com

SSL/TLS オプション

  • SSL 証明書検証の無効化: curl -k https://example.com
  • クライアント証明書の使用: curl --cert cert.pem --key key.pem https://example.com

プロキシとネットワーク

  • プロキシの使用: curl -x proxysever.server.com:PORT http://example.com
  • 下載速度の制限: curl --limit-rate 1000B -O http://example.com/file

出力制御

  • サイレントモード: curl -s http://example.com
  • 詳細モード: curl -v http://example.com
  • ファイルへの出力: curl -o file.html http://example.com
  • リモートファイル名での保存: curl -O http://example.com/file.zip

その他

  • ダウンロードの再開: curl -C - -o partial_file.zip http://example.com/file.zip
  • タイムアウトの設定: curl --connect-timeout 10 http://example.com
  • 設定ファイルの使用: curl -K config_file http://example.com

このチートシートは、最もよく使われる cURL コマンドとそのパラメータをカバーしており、さまざまな HTTP 操作やデータ転送のためのクイックリファレンスとして機能します。

高度な cURL コマンド

デバッグ用の高度な curl コマンドをいくつか紹介합니다:

  1. 詳細出力: curl -v https://example.com このコマンドは、ヘッダーや接続の詳細を含む、リクエストとレスポンスについての詳細な情報を提供します。

  2. 完全トレースダンプ: curl --trace - https://example.com 受信および送信されるすべてのデータのヘキスダンプを出力し、通信全体の包括的なビューを提供します。

  3. タイムスタンプ付きトレース: curl --trace - --trace-time https://example.com トレース出力にタイムスタンプを追加し、タイミング関連の問題分析を助けます。

  4. レスポンスヘッダーのみを表示: curl -s -o /dev/null -D - https://example.com このコマンドはレスポンスヘッダーのみを表示し、クイックなヘッダー分析に便利です。

  5. リクエストヘッダーのみを表示: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' この複雑なコマンドはリクエストヘッダーのみをフィルタリングし、送信内容の検査に役立ちます。

  6. Pantheon デバッガーの使用: curl -I -H "Pantheon-Debug:1" https://example.com このコマンドは Pantheon の Debug ヘッダーを使用してリクエストについての追加情報を取得し、Pantheon ホスティングされたサイトに便利です。

  7. HTTP/2 プロトコルの強制: curl --http2 https://example.com HTTP/2 プロトコルの使用を確保し、-I と組み合わせることで HTTP/2 サポートを验证できます。

  8. netcat によるデバッグ: 1つのターミナルで: nc -l 1234 もう1つのターミナルで: curl http://127.0.0.1:1234 これにより、curl が送信している内容を正確に確認でき、ペイロードのデバッグに便利です。

これらの高度なコマンドは強力なデバッグ機能を備えており、開発者は HTTP 通信のさまざまな側面を検査し、複雑な問題をトラブルシューティングできます。

cURL の一般的な使用例

curl は多数の応用分野を持つ多機能なコマンドラインツールです。以下に、curl の最も一般的な使用例の一部を挙げます:

Web 操作

  1. ファイルのダウンロード: curl は URL からファイルをダウンロードできます。
  2. Web スクレイピング: curl はスクレイピング目的で Web ページの内容を取得できます。
  3. Web サイトのテスト: curl は Web サイトがアクセス可能かどうかを確認し、その内容を取得するのに役立ちます。

API 操作

  1. API リクエストの送信: curl は API との相互作用のために、さまざまな HTTP メソッド (GET、POST、PUT、DELETE) をサポートしています。
  2. API エンドポイントのテスト: curl は、専用の API クライアントを必要とせず、API エンドポイントのテストとデバッグを迅速に行う方法を提供します。

ネットワークトラブルシューティング

  1. 接続性の確認: curl はネットワーク接続を検証し、問題をトラブルシューティングするために使用できます。
  2. DNS のテスト: curl は、DNS 関連の問題のトラブルシューティングのために特定の DNS サーバーを強制指定できます。
  3. ヘッダーの検査: curl は HTTP ヘッダーを表示でき、デバッグに便利です。

データ転送

  1. FTP 操作: curl はファイル転送プロトコル (FTP) を使用したファイル転送をサポートしています。
  2. SMTP 操作: curl は Simple Mail Transfer Protocol (SMTP) を通じてメールを送信するために使用できます。

セキュリティと認証

  1. SSL 接続: curl は SSL/TLS を使用したセキュアな接続をサポートしています。
  2. 認証: curl は Basic 認証やクライアント証明書を含む、さまざまな認証方法を処理できます。

開発とデバッグ

  1. 異なる HTTP メソッドのシミュレーション: curl を使用して、開発者はさまざまな HTTP メソッドを簡単にテストできます。
  2. 詳細ログ出力: curl の詳細モードは、リクエスト-レスポンスサイクルに関する詳細な情報を提供し、デバッグを助けます。

これらの使用例は、Web 操作、API テスト、ネットワークトラブルシューティング、および開発タスクのためのツールとしての curl の柔軟性を示しています。

cURL を用いた Web サイトのパフォーマンステスト

curl は Web サイトのパフォーマンステストに強力なツールです。Web サイトの読み込み速度のさまざまな側面を測定するために、どのように使用できるかを以下に示します:

基本的なパフォーマンステスト

Web サイトの読み込み時間の簡単な測定を得るには、次のコマンドを使用してください:

curl -o /dev/null -s -w "Total Time: %{time_total}s\n" "https://example.com"

このコマンドは、Web サイトを取得するのにかかった総時間を出力します[2]。

詳細なパフォーマンスメトリクス

より包括的な分析を行うには、curl を使用して複数のパフォーマンスメトリクスを測定できます:

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://example.com

このコマンドは、DNS ルックアップ時間、接続時間、総時間など、読み込みプロセスの異なる段階の分解を提供します[1]。

高度なメトリクス

さらに詳細な分析を行うには、追加のメトリクスを含めることができます:

curl -o /dev/null -w "HTTP Version: %{http_version}\nPage Size: %{size_download} bytes\nResponse Code: %{response_code}\nDNS Lookup: %{time_namelookup} sec\nConnect Time: %{time_connect} sec\nTime to First Byte: %{time_starttransfer} sec\nTotal Time: %{time_total} sec\n" -s https://example.com

このコマンドは、HTTP バージョン、ページサイズ、レスポンスコードに関する情報を含みます[3]。

複数リクエストのベンチマーキング

一貫性をテストしたり、時間の経過に伴うパフォーマンスを監視したりするには、ループを使用して複数のリクエストを発行できます:

for i in {1..5}; do curl -o /dev/null -s -w "Request $i Total Time: %{time_total}\n" https://example.com; done

これにより、テストが 5 回実行され、各リクエストの総時間が表示されます[3]。

パフォーマンステストスクリプトの作成

これらのテストを自動化し、結果を保存するためのシンプルな bash スクリプトを作成できます:

#!/bin/bash
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"

“URL” をテストしたい Web サイトに置き換えてください。このスクリプトは、日付付きファイルに結果を保存します[5]。

これらの curl コマンドやスクリプトを使用することで、Web サイトのパフォーマンスを効果的に測定・監視でき、潜在的なボトルネックを特定し、読み込み時間を最適化するのに役立ちます。

関連リンク

購読する

システム、インフラ、AIエンジニアリングの新記事をお届けします。