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の違い
項目 | curl | httpie |
---|---|---|
標準的な利用 | ◎(システムに標準搭載) | △(外部導入が必要) |
学習コスト | やや高い | 低い |
構文の簡潔さ | △ | ◎ |
表示のわかりやすさ | △ | ◎(JSON整形・色付け) |
スクリプト向き | ◎ | ○ |
まとめ
curl
はWebとのあらゆる通信を扱える高機能なCLIツールであり、API通信やファイル転送、認証、スクリプト化など、多様なユースケースに対応します。
直感的な使用感というよりも柔軟性と標準性に優れており、Linux/Unix環境での必須ツールの一つです。初学者にはやや難しく見えるかもしれませんが、覚えておくと開発やサーバ管理で非常に重宝する強力なコマンドです。