curlコマンドの使い方:HTTPなどのリクエストを送信する
curlは、HTTPなどのプロトコルでデータを送受信するコマンドです。Webサーバーの応答確認、APIの呼び出し、ファイルのダウンロードなど、ネットワーク周りの切り分けに幅広く使えます。
curlのよく使う形
実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。
| コマンド例 | 内容 |
|---|---|
curl https://example.com | ページの内容を標準出力に表示 |
curl -I https://example.com | ヘッダー(ステータスコードなど)だけ取得 |
curl -o file.zip https://example.com/file.zip | 指定した名前でファイルに保存 |
curl -L https://example.com | リダイレクトを追いかける |
curl -X POST -d 'a=1' https://example.com/api | POSTリクエストを送信 |
curl -H 'Content-Type: application/json' -d '{"a":1}' URL | ヘッダーとJSONを指定して送信 |
curl -s -o /dev/null -w '%{http_code}' URL | ステータスコードだけを表示 |
curlの主なオプション
| オプション | 意味 |
|---|---|
-I | ヘッダーのみ取得 |
-O | ファイルとして保存 |
-X | メソッドを指定(POST等) |
-d | データを送信 |
-H | リクエストヘッダーを指定 |
-L | リダイレクトを追跡 |
curlの実行例と結果の読み方
user@linux-study:~$ curl -I https://example.com
HTTP/1.1 200 OK
Content-Type: text/html
curl -Iで、https://example.comにHTTPリクエストを送り、実際のページ内容ではなくレスポンスヘッダー(ステータスコードやContent-Typeなど)だけを取得しています。
練習用ターミナルでは、curlをブラウザ上で安全に試せます。
curlを使うときの注意点
サーバーの死活監視やデプロイ後の確認では、curl -Iでステータスコードを見るだけでも、アプリが応答しているかの切り分けに役立ちます。
curlの出力をそのままシェルに渡して実行する書き方(curl URL | sh)は、内容を確認せずに実行する危険があります。まずファイルに保存して中身を見てから実行しましょう。
curlに関するよくある質問
wgetとの違いは?
wgetはファイルのダウンロードが中心で、再帰取得が得意です。curlはAPIの呼び出しなど、リクエストの細かい指定に向いています。
証明書のエラーが出るときは?
-kで検証を無効にできますが、通信先を確認できなくなるため、原因の切り分けの一時的な用途に限りましょう。
関連ページ
curlが登場する章:上級 第10章