用語集 最終更新 2026.05.25

curl

curl は、URL を入力として与えるとデータを送受信できるコマンドラインツールです。 1996 年に Daniel Stenberg が公開し、現在は Linux / macOS / Windows のいずれにも標準搭載されています。

まず押さえたいポイント

  • HTTP 専用 ではない。FTP / FTPS / SFTP / SCP / SMTP / IMAP / LDAP / WebSocket / MQTT など多プロトコル対応
  • 中核ライブラリlibcurl で、PHP / Python / C 等の各言語からも呼ばれる
  • API を叩く、ヘルスチェック、ファイル転送、CI バッチなどに最頻出
  • 同じ書き方で https://...ftps://...sftp://... も扱える統一性が強み

よく使う基本構文

  • curl URL — そのまま標準出力に表示
  • curl -o file URL — ファイルに保存
  • curl -O URL — URL のファイル名で保存
  • curl -X POST -d 'key=value' URLPOST 送信
  • curl -H 'Content-Type: application/json' -d '{"a":1}' URL — JSON POST
  • curl -u user:pass URL — Basic 認証
  • curl -v URL — 詳細ログ表示 (トラブル時の第一手)
  • curl --ssl-reqd -T file ftp://host/path/FTPS でアップロード

どんな場面で使うか

  • Web API の動作確認 (Postman の代わりに 1 行で済むケース)
  • 監視 / 外形監視--connect-timeout 付きの疎通チェック
  • CI / バッチで <a href="/glossary/ftps">FTPS</a><a href="/glossary/oss">OSS</a> 配布物のダウンロード
  • レスポンスヘッダや Cookie を見てフレームワークを特定する調査
  • インストール用ワンライナー (curl ... | sh) — 配布側の信用が前提

似たツールとの違い

curl と並んでよく挙がるのが wgethttpie です。

  • wget — ダウンロード特化。再帰取得 (-r) に強く、ミラーリング用途で便利。一方で POST やヘッダ操作は curl の方が柔軟。
  • httpie (http コマンド) — HTTP API 操作を読みやすく書ける。JSON の整形が綺麗。HTTP / HTTPS 専用で、FTPS や SFTP には未対応。
  • xh — httpie 互換の Rust 製。高速。
  • Postman / Insomnia — GUI で API を叩くツール。チームで共有しやすいが、CI / 自動化には curl が便利。

curl は 多プロトコル + シェル親和性 + どの環境にもある という万能性が魅力で、API テスト・運用バッチ・トラブル調査の定番です。

実務で気をつけたい誤解

curl -k (--insecure) でサーバ証明書の検証をスキップする例がネット上に多く出回りますが、本番では絶対に使ってはいけません。中間者攻撃に無防備になります。 証明書エラーが出た場合は、エラーの原因 (中間証明書不足 / 期限切れ / ホスト名不一致) を特定して直すのが筋です。

詳しくは curl コマンドと FTPS について で、安全な使い方と CI / バッチ自動化のパターンを整理しています。