概要
HTTPを中心に多くのプロトコルでデータを送受信します。API確認やヘッダー確認で特に便利です。
基本構文
curl [オプション] URL詳細解説
curlは、URLを相手にデータを送受信するコマンドです。HTTPやHTTPSの確認に使われることが多いですが、FTPなど複数のプロトコルにも対応します。
実務では、APIの疎通確認、HTTPヘッダー取得、認証付きリクエスト、ファイルダウンロード、障害調査で頻出します。
大切なのは、標準出力へ本文を出す既定動作、-Iでヘッダーだけを見る、-Lでリダイレクトを追う、-oや-Oで保存方法を変える、といった基礎を押さえることです。
このコマンドを使う場面
HTTP疎通確認、APIテスト、ヘッダー確認、ファイル取得、Web障害調査に使います。
まず安全に試す方法
1. curl -I https://example.com
2. curl -L -o example.html https://example.com
3. curl -s https://example.com | head
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
-Iで応答コードとcontent-typeを確認します。
-
-L -oでリダイレクト込みの取得を試します。
実行結果サンプル
-
curl -I https://example.comHTTP/1.1 200 OK content-type: text/html ...
戻り値コード
- 0 正常終了。転送に成功しました。
- >0 名前解決失敗、接続失敗、TLS失敗などで転送できませんでした。
使用例
curl -I https://example.comcurl -L -o out.html https://example.comcurl -H "Accept: application/json" https://api.example.com
よくあるエラー
-
301や302で意図した内容が見えない 原因: リダイレクト先を追っていません。対処: -Lを付けて追跡します。
-
認証情報をそのまま履歴へ残した 原因: コマンドラインへ機密情報を直接書きました。対処: 設定ファイル、環境変数、標準入力などを検討します。
導入・互換性情報
機能差はバージョン依存です。TLS、HTTP/2、HTTP/3対応状況はビルドオプションで変わります。
注意点 / セキュリティリスク
危険度は中程度です。認証情報や機密ヘッダーをシェル履歴へ残さない工夫が必要です。
FAQ
-
Q. wgetとの違いは何ですか。 A. curlは送受信やAPI確認に強く、wgetは再帰取得や非対話ダウンロードで便利な場面があります。
-
Q. 本文を表示せず状態だけ見たい時はどうしますか。 A. -Iでヘッダーだけ見るか、-o /dev/nullと-wを組み合わせます。
関連用語
- リポジトリ
- API
- encryption
- TLS
- certificate
- CA
- confidentiality
- availability
- HTTP
- HTTPS
- reverse proxy
- proxy
- load balancer
- DoH
- CDN
- web server
- application server
- registry
- Kubernetes
- deployment
- ingress
- incident
- runbook
- SLA
- SLO
- SLI
- repository server
- mirror server
- cloud
- IaaS
- PaaS
- SaaS
- serverless
- object storage
- BMC
- Redfish
- service mesh
- integration test
参照リンク
- カテゴリー: Networking
- レベル: Practical