【かーる】

cURL(カール) とは?

💡 コマンドひとつでWebにアクセスする「万能データ取得ツール」
📌 このページのポイント
cURL:コマンドラインでHTTP通信 ターミナル $ curl -X GET \ https://api.example .com/users/1 -H "Accept: json" -o output.json リクエスト サーバー api.example.com REST API レスポンス HTTP/1.1 200 OK {"id": 1, "name": "田中", "email": "t@ex.jp"} 主要オプション -X HTTPメソッド指定 -H ヘッダー追加 -d リクエストボディ -o 出力ファイル指定
cURLのイメージ
ひよこ ひよこ

cURLって何に使うの?

ペンギン先生 ペンギン先生

ターミナルからWebサイトやAPIにアクセスするためのコマンドだよ。たとえば「curl https://example.com」と打つと、そのページのHTMLが表示されるんだ。ブラウザを開かなくてもWebにアクセスできるんだよ。

ひよこ ひよこ

ブラウザでいいんじゃない?

ペンギン先生 ペンギン先生

人がWebサイトを見るだけならブラウザでいいんだけど、APIの動作確認やスクリプトでの自動処理にはcURLのほうが便利なんだ。ヘッダーの確認や認証情報の付与、POSTリクエストの送信なんかもオプションひとつでできるよ。

ひよこ ひよこ

おもしろい!どんなオプションがよく使われるの?

ペンギン先生 ペンギン先生

「-o」でファイルに保存、「-H」でヘッダーを追加、「-X POST」でPOSTリクエスト、「-d」でデータを送信あたりが定番だよ。「curl -I https://example.com」でレスポンスヘッダーだけ見ることもできるんだ。

ひよこ ひよこ

wgetとは何が違うの?

ペンギン先生 ペンギン先生

wgetはファイルのダウンロードに特化していて、再帰的にサイト全体をダウンロードできるのが強み。cURLはダウンロードだけじゃなくAPIとのやり取りやデバッグにも強いオールラウンダーだね。

ひよこ ひよこ

cURLってセキュリティ的に大丈夫なの?

ペンギン先生 ペンギン先生

cURL自体は安全なツールなんだけど、使い方で落とし穴がある。よく見かけるのが「curl | bash」というパターンで、ネットからスクリプトをダウンロードしてそのまま実行しちゃうやつ。途中で通信が改ざんされたら悪意のあるコードが実行される。あとcURLは証明書検証をスキップする「-k」オプションがあって、開発中に使ったまま本番に持ち込んでしまうと中間者攻撃のリスクが生まれる。便利すぎるツールだからこそ、セキュリティ意識を持って使う必要があるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「cURL」って出てきたら「コマンドラインからWebにアクセスするツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Client for URLs」 = URLのためのクライアント
💬 「see URL(URLを見る)」という意味も掛けている。1998年にスウェーデンの開発者が作ったオープンソースツールだよ
← 用語集にもどる