【かーる】

cURL(カール) とは?

最終更新:
💡 URLへのデータ送受信を、コマンドで操作

URLを指定して、コマンドラインからデータを取得・送信するツール。HTTPやHTTPSなど複数のプロトコルに対応し、APIの動作確認やファイル転送の自動化に使われる。

📌 このページのポイント
curl:コマンドで送受信 ターミナル curl URLを指定 サーバー 要求 応答 curl https://example.com 通常の出力先 画面(標準出力) -o 保存先 ファイルへ保存 HTMLの描画やページ内JSの実行はしない
図はHTTP通信の例です。-IはHEAD、-dは通常POSTでの送信に使います。
ひよこ ひよこ
cURLって何に使うの?
ペンギン先生 ペンギン先生
ターミナルからWebサイトやAPIへデータを送受信するよ。「curl https://example.com」なら、通常は受け取った本文を画面に出す。ブラウザのようにHTMLを描画したり、ページ内のJavaScriptを実行したりするわけではないんだ。
ひよこ ひよこ
ブラウザより便利な場面がある?
ペンギン先生 ペンギン先生
同じリクエストをスクリプトで繰り返したり、APIの応答を保存したりする場面だね。「-o」で保存先、「-H」で送信ヘッダーを指定できる。「-I」はHTTPではHEADリクエストを送り、本文なしでヘッダーを確認するよ。
ひよこ ひよこ
データを送るときは?
ペンギン先生 ペンギン先生
HTTPでは「-d」で送るデータを指定すると、通常はフォーム形式のPOSTになる。送る形式に合うオプションやヘッダーを選ぼう。「-X」はメソッド名の指定で、それだけで送信する本文が作られるわけではないよ。
ひよこ ひよこ
どのパソコンでも同じように使える?
ペンギン先生 ペンギン先生
Linux・macOS・Windowsなどで動くけれど、最初から入っているか、どの版や機能が使えるかは環境によるよ。curl --versionで確認しよう。ブラウザと違い、リダイレクト先を追うには通常「-L」の指定も必要なんだ。
ひよこ ひよこ
HTTPSなら、取得したものをそのまま実行しても安全?
ペンギン先生 ペンギン先生
通信の保護と、内容の安全性は別だよ。通常は接続先の証明書を確認するけれど、「-k」はその検証を省く。取得したスクリプトをそのままシェルへ渡すと、その内容が実行されるので、配布元や内容を確認することが大切なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「cURL」って出てきたら「URLへのデータ送受信をコマンドで行うツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Client for URLs」 = URLのためのクライアント
💬 公式FAQはClient for URLsという言葉遊びや、see URLと読めることを説明しているよ。コマンド名はcurlで、通信処理にはlibcurlというライブラリを使うんだ。

参考資料

← 用語集にもどる