cURL チートシート

パラメータ付きの cUrl 有用コマンド

以下が最も有用な cURL コマンド のパラメータを含むチートシートです。

a person with a curl sign

上記の画像は、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

認証

  • ベーシック認証: curl -u username:password http://example.com
  • .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 のデバッグヘッダーを使用して、リクエストに関する追加情報を取得し、Pantheon 上でホストされているサイトのデバッグに役立ちます。

  7. HTTP/2 プロトコルの強制: curl --http2 https://example.com これにより HTTP/2 プロトコルが使用され、-I と組み合わせることで HTTP/2 のサポートを確認できます。

  8. netcat を使用したデバッグ: 1 つのターミナルで: nc -l 1234 もう一つのターミナルで: curl http://127.0.0.1:1234 これにより、cURL が送信しているデータを正確に確認でき、ペイロードのデバッグに役立ちます。

これらの高度なコマンドは、強力なデバッグ機能を提供し、開発者が HTTP 通信のさまざまな側面を検査し、複雑な問題を解決することを可能にします。

cURL の一般的なユースケース

cURL は、多数のアプリケーションに対応した多用途のコマンドラインツールです。以下に cURL の最も一般的なユースケースを示します。

ウェブとの相互作用

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

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 は、簡易メール転送プロトコル(SMTP)を使用してメールを送信するために使用できます。

セキュリティと認証

  1. SSL 接続: cURL は、SSL/TLS を使用した安全な接続をサポートしています。
  2. 認証: cURL は、ベーシック認証やクライアント証明書など、さまざまな認証方法を処理できます。

開発とデバッグ

  1. さまざまな HTTP メソッドのシミュレーション: cURL は、開発者がさまざまな HTTP メソッドを簡単にテストすることを可能にします。
  2. 詳細なログ: cURL の詳細モードは、リクエスト - レスポンスサイクルに関する詳細な情報を提供し、デバッグを支援します。

これらのユースケースは、cURL がウェブ相互作用、API テスト、ネットワークのトラブルシューティング、開発タスクのためのツールとしての柔軟性を示しています。

cURL を使用したウェブサイトのパフォーマンステスト

cURL は、ウェブサイトのパフォーマンスをテストするための強力なツールです。以下に、ウェブサイトの読み込み速度のさまざまな側面を測定する方法を示します。

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

ウェブサイトの読み込み時間の単純な測定値を得るには、このコマンドを使用します:

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

このコマンドは、ウェブサイトをフェッチするために要した総時間を出力します。

詳細なパフォーマンス指標

より包括的な分析を行うには、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 ルックアップ時間、接続時間、総時間を含む、読み込みプロセスのさまざまな段階の内訳を提供します。

高度な指標

さらに詳細な分析を行うには、追加の指標を含めることができます:

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 バージョン、ページサイズ、レスポンスコードに関する情報が含まれます。

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

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

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

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

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

これらのテストを自動化し、結果を保存するための単純な 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” をテストしたいウェブサイトに変更してください。このスクリプトは、結果を日付付きのファイルに保存します。

これらの cURL コマンドとスクリプトを使用することで、ウェブサイトのパフォーマンスを効果的に測定および監視し、潜在的なボトルネックを特定し、読み込み時間を最適化することができます。

便利なリンク