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.