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

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 -V

This command outputs the version of curl and libcurl, along with a dedicated line listing all currently enabled protocols.