123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
- FEATURES
- curl tool
- - config file support
- - multiple URLs in a single command line
- - range "globbing" support: [0-13], {one,two,three}
- - multiple file upload on a single command line
- - custom maximum transfer rate
- - redirectable stderr
- - metalink support (*13)
- libcurl
- - full URL syntax with no length limit
- - custom maximum download time
- - custom least download speed acceptable
- - custom output result after completion
- - guesses protocol from host name unless specified
- - uses .netrc
- - progress bar with time statistics while downloading
- - "standard" proxy environment variables support
- - compiles on win32 (reported builds on 40+ operating systems)
- - selectable network interface for outgoing traffic
- - IPv6 support on unix and Windows
- - persistent connections
- - socks 4 + 5 support, with or without local name resolving
- - supports user name and password in proxy environment variables
- - operations through proxy "tunnel" (using CONNECT)
- - support for large files (>2GB and >4GB) during upload and download
- - replaceable memory functions (malloc, free, realloc, etc)
- - asynchronous name resolving (*6)
- - both a push and a pull style interface
- - international domain names (*11)
- HTTP
- - HTTP/1.1 compliant (optionally uses 1.0)
- - GET
- - PUT
- - HEAD
- - POST
- - Pipelining
- - multipart formpost (RFC1867-style)
- - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3)
- to server and proxy
- - resume (both GET and PUT)
- - follow redirects
- - maximum amount of redirects to follow
- - custom HTTP request
- - cookie get/send fully parsed
- - reads/writes the netscape cookie file format
- - custom headers (replace/remove internally generated headers)
- - custom user-agent string
- - custom referrer string
- - range
- - proxy authentication
- - time conditions
- - via http-proxy
- - retrieve file modification date
- - Content-Encoding support for deflate and gzip
- - "Transfer-Encoding: chunked" support in uploads
- - data compression (*12)
- - HTTP/2 (*5)
- HTTPS (*1)
- - (all the HTTP features)
- - using client certificates
- - verify server certificate
- - via http-proxy
- - select desired encryption
- - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1)
- FTP
- - download
- - authentication
- - Kerberos 5 (*14)
- - active/passive using PORT, EPRT, PASV or EPSV
- - single file size information (compare to HTTP HEAD)
- - 'type=' URL support
- - dir listing
- - dir listing names-only
- - upload
- - upload append
- - upload via http-proxy as HTTP PUT
- - download resume
- - upload resume
- - custom ftp commands (before and/or after the transfer)
- - simple "range" support
- - via http-proxy
- - all operations can be tunneled through a http-proxy
- - customizable to retrieve file modification date
- - no dir depth limit
- FTPS (*1)
- - implicit ftps:// support that use SSL on both connections
- - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp://
- connection to use SSL for both or one of the connections
- SCP (*8)
- - both password and public key auth
- SFTP (*8)
- - both password and public key auth
- - with custom commands sent before/after the transfer
- TFTP
- - download
- - upload
- TELNET
- - connection negotiation
- - custom telnet options
- - stdin/stdout I/O
- LDAP (*2)
- - full LDAP URL support
- DICT
- - extended DICT URL support
- FILE
- - URL support
- - upload
- - resume
- SMB
- - SMBv1 over TCP and SSL
- - download
- - upload
- - authentication with NTLMv1
- SMTP
- - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), Kerberos 5
- (*4) and External.
- - send e-mails
- - mail from support
- - mail size support
- - mail auth support for trusted server-to-server relaying
- - multiple recipients
- - via http-proxy
- SMTPS (*1)
- - implicit smtps:// support
- - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL
- - via http-proxy
- POP3
- - authentication: Clear Text, APOP and SASL
- - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9),
- Kerberos 5 (*4) and External.
- - list e-mails
- - retrieve e-mails
- - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via
- custom requests
- - via http-proxy
- POP3S (*1)
- - implicit pop3s:// support
- - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL
- - via http-proxy
- IMAP
- - authentication: Clear Text and SASL
- - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9),
- Kerberos 5 (*4) and External.
- - list the folders of a mailbox
- - select a mailbox with support for verifying the UIDVALIDITY
- - fetch e-mails with support for specifying the UID and SECTION
- - upload e-mails via the append command
- - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS,
- STORE, COPY and UID via custom requests
- - via http-proxy
- IMAPS (*1)
- - implicit imaps:// support
- - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL
- - via http-proxy
- FOOTNOTES
- =========
- *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native
- Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i)
- *2 = requires OpenLDAP or WinLDAP
- *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
- SSPI (native Windows)
- *4 = requires a GSS-API implementation, however, only Windows SSPI is
- currently supported
- *5 = requires nghttp2 and possibly a recent TLS library
- *6 = requires c-ares
- *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for
- example, only supports SSLv3 and TLSv1
- *8 = requires libssh2
- *9 = requires OpenSSL, GnuTLS, mbedTLS, NSS, yassl, Secure Transport or SSPI
- (native Windows)
- *10 = requires any of the SSL libraries in (*1) above other than axTLS, which
- does not support SSLv3
- *11 = requires libidn or Windows
- *12 = requires libz
- *13 = requires libmetalink, and either an Apple or Microsoft operating
- system, or OpenSSL, or GnuTLS, or NSS
- *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos)
|