curl:多様なプロトコルに対応した信頼性抜群の汎用データ転送コマンド

curl

curlコマンドについての概要と詳細

curlとは

curl は、コマンドラインから HTTP、HTTPS、FTP、SFTP、SMTP など多数のプロトコルを使用してデータを送受信できるツールです。主に API通信のテストファイルダウンロード・アップロードHTTPヘッダやレスポンスの確認 などに利用され、非常に汎用性が高く、Web開発・運用・自動化スクリプトなどでも多用されます。

主な特徴

  • 多数のプロトコルをサポート(HTTP/HTTPS, FTP, SCP, SFTP, SMTPなど)
  • GET/POST/PUT/DELETE などのHTTPメソッド操作
  • JSON/XMLの送受信やREST APIのテストに最適
  • HTTPヘッダの追加・認証・Cookie・SSL設定対応
  • ファイルダウンロード・アップロード両対応
  • 簡潔な構文でスクリプトや自動化に組み込みやすい

インストール方法

Debian/Ubuntu系
$ sudo apt install curl

Fedora系
$ sudo dnf install curl

基本的な使い方

HTTP GETリクエスト

$ curl https://example.com

ダウンロードした内容をファイルに保存

$ curl -o index.html https://example.com

リダイレクトに追従

$ curl -L https://example.com

HTTPヘッダのみを表示

$ curl -I https://example.com

POSTリクエスト(フォームデータ)

$ curl -d "name=Alice&age=30" https://example.com/form

POSTリクエスト(JSON)

$ curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice"}' https://api.example.com/users

PUT / DELETEメソッド

$ curl -X PUT -d "name=Bob" https://api.example.com/users/1
$ curl -X DELETE https://api.example.com/users/1

ヘッダ追加・認証付きリクエスト

$ curl -H "Authorization: Bearer xxxxx" https://api.example.com/users

レスポンスの詳細表示(-v)

$ curl -v https://example.com

ファイルのアップロード

$ curl -F "file=@data.csv" https://example.com/upload

よく使うオプション一覧

  • -o [filename]:ファイルに保存
  • -L:リダイレクト追従
  • -I:ヘッダのみ
  • -d:データ送信(POSTなど)
  • -H:ヘッダ指定
  • -X:HTTPメソッド指定
  • -F:フォームデータ送信
  • -v:詳細表示

curlとhttpieの違い

項目curlhttpie
標準的な利用◎(システムに標準搭載)△(外部導入が必要)
学習コストやや高い低い
構文の簡潔さ
表示のわかりやすさ◎(JSON整形・色付け)
スクリプト向き

まとめ

curl はWebとのあらゆる通信を扱える高機能なCLIツールであり、API通信やファイル転送、認証、スクリプト化など、多様なユースケースに対応します。
直感的な使用感というよりも柔軟性と標準性に優れており、Linux/Unix環境での必須ツールの一つです。初学者にはやや難しく見えるかもしれませんが、覚えておくと開発やサーバ管理で非常に重宝する強力なコマンドです。