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.comHTTPヘッダのみを表示
$ curl -I https://example.comPOSTリクエスト(フォームデータ)
$ curl -d "name=Alice&age=30" https://example.com/formPOSTリクエスト(JSON)
$ curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice"}' https://api.example.com/usersPUT / 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環境での必須ツールの一つです。初学者にはやや難しく見えるかもしれませんが、覚えておくと開発やサーバ管理で非常に重宝する強力なコマンドです。






