What Protocols Does Curl Support?
The command-line tool curl (Client URL) is a powerful
utility used globally for transferring data to and from servers. This
article provides a direct, comprehensive list of the network protocols
currently supported by curl to help developers and system
administrators understand its capabilities and compatibility.
Supported Protocols
Depending on how curl and its underlying library
libcurl are compiled, the tool supports a vast array of
protocols. The standard, fully-featured build of curl
currently supports the following network protocols:
Web and Hypertext Transfer Protocols
These protocols form the backbone of the modern web and are the most
commonly used features of curl.
- HTTP (Hypertext Transfer Protocol)
- HTTPS (HTTP Secure, over SSL/TLS)
- HTTP/2 and HTTP/3 (Advanced iterations of HTTP, supported in modern builds)
File Transfer Protocols
curl is heavily used for uploading and downloading files
across various standard file-sharing systems.
- FTP (File Transfer Protocol)
- FTPS (FTP Secure, over SSL/TLS)
- SFTP (SSH File Transfer Protocol)
- SCP (Secure Copy Protocol, over SSH)
- TFTP (Trivial File Transfer Protocol)
- FILE (For accessing local files on the system)
Email Protocols
These protocols allow curl to send, retrieve, and manage
emails directly from the command line.
- SMTP and SMTPS (Simple Mail Transfer Protocol, used for sending emails)
- POP3 and POP3S (Post Office Protocol, used for retrieving emails)
- IMAP and IMAPS (Internet Message Access Protocol, used for retrieving and managing emails)
Directory and Access Protocols
Used for accessing centralized directory information and dictionary services.
- LDAP and LDAPS (Lightweight Directory Access Protocol)
- DICT (Dictionary Protocol, used to query definitions)
Real-Time and Streaming Protocols
These protocols are utilized for real-time communication, media streaming, and modern web applications.
- WS and WSS (WebSocket and
WebSocket Secure, supported in recent versions of
curl) - RTSP (Real Time Streaming Protocol)
- RTMP and RTMPS (Real-Time Messaging Protocol)
Network and Sharing Protocols
- SMB and SMBS (Server Message Block, used for sharing files and printers on local networks)
- TELNET (Used for interactive bidirectional communication)
- GOPHER and GOPHERS (A legacy information retrieval protocol)
- MQTT (Message Queuing Telemetry Transport, a lightweight messaging protocol for IoT)
How to Check Supported Protocols on Your System
Because curl can be compiled with different libraries
and configurations, the exact protocols supported on your specific
machine may vary. To see the list of protocols enabled on your installed
version of curl, run the following command in your
terminal:
curl -VThis command outputs the version of curl and
libcurl, along with a dedicated line listing all currently
enabled protocols.