cURLは、ネットワークを介したデータ転送を可能にする強力なツール群を提供するプロジェクトです。このプロジェクトは、主に`libcurl`という
ライブラリと`curl`というコマンドラインツールから構成されています。
libcurl
`libcurl`は、クライアントサイドのURL転送
ライブラリで、様々なプロトコルをサポートしています。具体的には、DICT、FILE、FTP、FTPS、GOPHER、HTTP、
HTTPS、LDAP、LDAPS、SCP、SFTP、TELNET、TFTPといったプロトコルに対応しています。さらに、バージョン7.20.0以降では、IMAP、POP3、POP3S、SMTP、SMTPS、RTSPもサポートされています。
`libcurl`は、単にプロトコルをサポートするだけでなく、
X.509証明書、HTTP POSTやPUT、FTPアップロード、Kerberos
認証、HTTPフォームによるアップロード、
プロキシ、HTTPクッキー、ユーザー
認証、ファイル転送のレジューム、HTTP
プロキシトンネリングなど、多岐にわたる機能を提供しています。
特筆すべきは、`libcurl`の高い移植性です。
Solaris、
NetBSD、FreeBSD、OpenBSD、Darwin、
HP-UX、IRIX、
AIX、Tru64、
Linux、UnixWare、GNU Hurd、Windows、Amiga、OS/2、
BeOS、macOS、Ultrix、QNX、OpenVMS、RISC OS、NetWare、DOS、Symbian、OSF、Android、MINIX、IBM TPFといった幅広いプラットフォームで動作します。また、スレッドセーフであり、
IPv6にも対応しているため、現代的なネットワーク環境においても安心して利用できます。`libcurl`は、多くの
プログラミング言語(40以上)でバインディングが提供されており、
ソフトウェア開発者は自分のプログラムに容易に組み込むことができます。
curl
`curl`は、コマンドラインからURLを利用してファイルの送受信を行うためのツールです。`libcurl`を基盤としているため、`libcurl`がサポートする多くのプロトコルを利用できます。1997年にDaniel Stenbergによって開発が開始され、その後、多くの貢献者によって発展してきました。
`curl`はMIT
ライセンスの下で配布されているフリーソフトウェアであり、
Microsoft Windowsでは、Windows 10 version 1803以降に標準搭載されています。
コマンドラインでの利用例
`curl`の基本的な使い方は、コマンドラインで`curl`コマンドに続けてURLを指定するだけです。例えば、`example.com`のホームページを取得するには、次のように入力します。
bash
curl www.example.com
このコマンドを実行すると、デフォルトでは`example.com`のソースコードがターミナルに表示されます。出力結果をファイルに保存したい場合は、`-o`フラグを使用します。
bash
curl -o example.html www.example.com
上記の例では、`example.com`のソースコードが`example.html`という名前のファイルに保存されます。また、`-O`フラグを使用すると、元のファイル名で保存することも可能です。
bash
curl -O (URL)
ファイルをダウンロードする際には、ダウンロードの進捗状況を示すプログレスバーが表示されます。ただし、ターミナルに直接表示する場合は、プログレスバーは表示されません。
その他のサポート
`curl`は、以下のような機能もサポートしています。
X.509証明書
HTTP POST/PUT
FTPアップロード
Kerberos
認証
HTTPフォームによるアップロード
プロキシ
HTTPクッキー
ユーザー
認証(HTTPのBasic, Digest, NTLM, GSS-Negotiate、およびFTPのKerberos 4
認証)
ファイル転送のレジューム
HTTP
プロキシトンネリング
作者と著作権
`curl`は、Daniel Stenbergによって開発されました。600人以上もの貢献者の協力を得ており、貢献者の一覧は配布物に含まれるTHANKSファイルに記載されています。`curl`の著作権はDaniel Stenbergに帰属し、2019年2月からは、wolfSSLが`curl`のサポートとコンサルティングを行っています。
関連情報
GNU Wget
lftp
公式ウェブサイト
curl manual(英文)
Comparison of cURL vs other open source download tools(英文)
curl man page 日本語訳