12dbb8aedc
Added IDN and HTTP data compression as they were left out of the document until now. Added notes for qssl, schannel and Secure Transport supporting SSLv2, Secure Transport supports NTLM, and axTLS does not support SSLv3. There was also a typo; "AUTH TSL" should be "AUTH TLS".
187 lines
5.3 KiB
Plaintext
187 lines
5.3 KiB
Plaintext
_ _ ____ _
|
|
___| | | | _ \| |
|
|
/ __| | | | |_) | |
|
|
| (__| |_| | _ <| |___
|
|
\___|\___/|_| \_\_____|
|
|
|
|
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
|
|
|
|
libcurl supports
|
|
- 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/time specs 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
|
|
- socks5 support
|
|
- supports user name + password in proxy environment variables
|
|
- operations through proxy "tunnel" (using CONNECT)
|
|
- supports large files (>2GB and >4GB) both upload/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), GSS-Negotiate/Negotiate (*3) and
|
|
SPNEGO (*4) 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 referer string
|
|
- range
|
|
- proxy authentication
|
|
- time conditions
|
|
- via http-proxy
|
|
- retrieve file modification date
|
|
- Content-Encoding support for deflate and gzip
|
|
- "Transfer-Encoding: chunked" support for "uploads"
|
|
- data compression (*12)
|
|
|
|
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
|
|
- kerberos4 (*5), kerberos5 (*3)
|
|
- 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
|
|
- "uploads"
|
|
- resume
|
|
|
|
SMTP
|
|
- authentication: Plain, Login, CRAM-MD5, Digest-MD5 and NTLM (*9)
|
|
- send mail
|
|
- 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 and
|
|
NTLM (*9)
|
|
- list e-mails
|
|
- retrieve e-mails
|
|
- enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP
|
|
- 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
|
|
- select mailbox
|
|
- basic fetch e-mail support
|
|
- SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5 and
|
|
NTLM (*9)
|
|
- 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, schannel (native
|
|
Windows), Secure Transport (native iOS/OS X) or qssl (native IBM i)
|
|
*2 = requires OpenLDAP
|
|
*3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
|
|
*4 = requires FBopenssl
|
|
*5 = requires a krb4 library, such as the MIT one or similar.
|
|
*6 = requires c-ares
|
|
*7 = requires OpenSSL, NSS, qssl, schannel, or Secure Transport; GnuTLS, for
|
|
example, only supports SSLv3 and TLSv1
|
|
*8 = requires libssh2
|
|
*9 = requires OpenSSL, GnuTLS, 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
|