フロントエンドやバックエンドのエンジニアにとってcURLといえばHTTP(S)
おもむろに history
してみても、皆さんHTTPの通信しかしてないんじゃないでしょうか。
cURLって実は結構凄いんです。いや、ほんと。
cURLはHTTP(S)だけじゃない!
cURLのmanpageには下記の文章があります。
curl is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP). The command is designed to work without user interaction.
引用元:https://curl.haxx.se/docs/manpage.html
cURLは、DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTPをサポートしています。
使い方
使い方は簡単。プロトコルやポートを指定するだけです。
curl -vv smtp://メールサーバーのアドレス:25
実際にメールを送るなら
curl smtp://example.com --mail-from 'from@example.com' --mail-rcpt 'to@example.com' -u name -T \
"From: 'xxxxx'
To: 'xxxxx'
Subject: I am cURL
NoHTTP(Not Only HTTP)
"
手打ちメールの完成です。
実際どんなところで使うの?
どんなサーバーでも大体入っているので、telnet not found
と言われた時に活躍します。
$ curl -vv telnet://xxx.xxx.xxx.xxx:22
telnet
もない、 dig
もない、当然 tcpdump
なんて入ってない。
メールが送信できない、SSHが繋がらない、そんな時には curl
があります。
※ちなみに筆者のhistoryを集計したところ
git, cd, ll, ssh, cat, npm, q, ghci, date, sedの順でcurlはそんな使ってませんでした。