curl supports numerous protocols, or put in URL terms: schemes. Your particular build may not support them all.
Lets you lookup words using online dictionaries.
Read or write local files. curl does not support accessing file:// URL remotely, but when running on Microsoft Windows using the native UNC approach works.
curl supports the File Transfer Protocol with a lot of tweaks and levers. With or without using TLS.
Retrieve files.
curl supports HTTP with numerous options and variations. It can speak HTTP version 0.9, 1.0, 1.1, 2 and 3 depending on build options and the correct command line options.
Using the mail reading protocol, curl can download emails for you. With or without using TLS.
curl can do directory lookups for you, with or without TLS.
curl supports MQTT version 3. Downloading over MQTT equals subscribe to a topic while uploading/posting equals publish on a topic. MQTT over TLS is not supported (yet).
Downloading from a pop3 server means getting a mail. With or without using TLS.
The Realtime Messaging Protocol is primarily used to serve streaming media and curl can download it.
curl supports RTSP 1.0 downloads.
curl supports SSH version 2 scp transfers.
curl supports SFTP (draft 5) done over SSH version 2.
curl supports SMB version 1 for upload and download.
Uploading contents to an SMTP server means sending an email. With or without TLS.
Telling curl to fetch a telnet URL starts an interactive session where it sends what it reads on stdin and outputs what the server sends it.
curl can do TFTP downloads and uploads.