curl
Command line tool for transferring data with URL syntax. Supports multiple protocols including HTTP, HTTPS, FTP, and more.
Description
curl is a versatile command line tool for transferring data using URL syntax. It supports a wide range of protocols such as DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET, and TFTP. Key features include SSL certificates, HTTP POST and PUT, FTP uploading, HTTP form-based upload, proxies, cookies, various authentication methods (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, and proxy tunneling.
Common use cases involve downloading files, sending HTTP requests, interacting with web services, and testing network connectivity. It is widely used in scripting, automation, and penetration testing for banner grabbing and web enumeration.
The package includes wcurl, a simple wrapper for easy file downloads, and related libraries like libcurl4t64 for OpenSSL flavour and libcurl3t64-gnutls for GnuTLS flavour, along with development files and documentation.
How It Works
curl operates by parsing URL syntax and initiating data transfers over supported protocols. It handles connections, authentication, SSL/TLS encryption via certificates, proxy tunneling, and resume capabilities. Features like HTTP POST/PUT send data payloads, while options control output, headers, silence, and error handling. Underlying libcurl library manages low-level protocol implementations, IPv6 compatibility, threading, and features like HTTP/2, HTTP/3 via nghttp2/nghttp3 and ngtcp2.
Installation
sudo apt install curlFlags
Examples
curl -hcurl [options...] <url>curl --help allcurl --help httpwcurl <URL>wcurl -o <PATH> <URL>wcurl --dry-run <URL>