curl/docs/FEATURES

179 lines
5.0 KiB
Plaintext
Raw Normal View History

2010-02-15 03:40:18 +08:00
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
2000-05-23 01:35:35 +08:00
\___|\___/|_| \_\_____|
FEATURES
2004-08-12 22:08:46 +08:00
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
2000-05-23 01:35:35 +08:00
- 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
2000-12-11 23:35:57 +08:00
- "standard" proxy environment variables support
2003-06-26 19:36:32 +08:00
- compiles on win32 (reported builds on 40+ operating systems)
- selectable network interface for outgoing traffic
2004-08-12 22:08:46 +08:00
- IPv6 support on unix and Windows
2012-07-21 03:02:58 +08:00
- persistent connections
2003-05-28 18:24:20 +08:00
- socks5 support
2003-06-26 19:36:32 +08:00
- supports user name + password in proxy environment variables
- operations through proxy "tunnel" (using CONNECT)
2004-08-12 22:08:46 +08:00
- supports large files (>2GB and >4GB) both upload/download
2012-07-21 03:02:58 +08:00
- replaceable memory functions (malloc, free, realloc, etc)
2004-08-12 22:08:46 +08:00
- asynchronous name resolving (*6)
2007-05-26 05:20:39 +08:00
- both a push and a pull style interface
2000-05-23 01:35:35 +08:00
HTTP
2003-06-26 19:36:32 +08:00
- HTTP/1.1 compliant (optionally uses 1.0)
2000-05-23 01:35:35 +08:00
- GET
- PUT
- HEAD
- POST
2007-05-26 05:20:39 +08:00
- Pipelining
2003-06-26 19:36:32 +08:00
- multipart formpost (RFC1867-style)
- authentication: Basic, Digest, NTLM (*9), GSS-Negotiate/Negotiate (*3) and
2004-08-12 22:08:46 +08:00
SPNEGO (*4) to server and proxy
- resume (both GET and PUT)
2000-05-23 01:35:35 +08:00
- follow redirects
2000-12-11 23:35:57 +08:00
- maximum amount of redirects to follow
2000-05-23 01:35:35 +08:00
- custom HTTP request
2000-12-11 23:35:57 +08:00
- cookie get/send fully parsed
2003-05-28 18:24:20 +08:00
- reads/writes the netscape cookie file format
2003-06-26 19:36:32 +08:00
- custom headers (replace/remove internally generated headers)
2000-05-23 01:35:35 +08:00
- custom user-agent string
- custom referer string
- range
- proxy authentication
- time conditions
- via http-proxy
2000-12-11 23:35:57 +08:00
- retrieve file modification date
2003-05-28 18:24:20 +08:00
- Content-Encoding support for deflate and gzip
2003-06-26 19:36:32 +08:00
- "Transfer-Encoding: chunked" support for "uploads"
2000-05-23 01:35:35 +08:00
HTTPS (*1)
- (all the HTTP features)
2005-05-18 18:14:25 +08:00
- using client certificates
2000-12-11 23:35:57 +08:00
- verify server certificate
2000-05-23 01:35:35 +08:00
- via http-proxy
2003-05-28 18:24:20 +08:00
- select desired encryption
2005-05-18 18:14:25 +08:00
- force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1)
2000-05-23 01:35:35 +08:00
FTP
- download
- authentication
- kerberos4 (*5), kerberos5 (*3)
2001-12-03 18:07:49 +08:00
- active/passive using PORT, EPRT, PASV or EPSV
2000-05-23 01:35:35 +08:00
- 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
2000-08-01 06:42:34 +08:00
- custom ftp commands (before and/or after the transfer)
2000-05-23 01:35:35 +08:00
- simple "range" support
- via http-proxy
2000-09-15 21:20:34 +08:00
- all operations can be tunneled through a http-proxy
2000-12-11 23:35:57 +08:00
- customizable to retrieve file modification date
2004-08-12 22:08:46 +08:00
- no dir depth limit
2000-05-23 01:35:35 +08:00
2004-01-07 22:50:11 +08:00
FTPS (*1)
- implicit ftps:// support that use SSL on both connections
- explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp://
2004-01-07 22:50:11 +08:00
connection to use SSL for both or one of the connections
2007-05-26 05:20:39 +08:00
SCP (*8)
- both password and public key auth
SFTP (*8)
- both password and public key auth
- with custom commands sent before/after the transfer
2005-11-17 22:28:58 +08:00
TFTP
- download / upload
2000-05-23 01:35:35 +08:00
TELNET
- connection negotiation
2001-03-12 17:44:08 +08:00
- custom telnet options
2000-05-23 01:35:35 +08:00
- stdin/stdout I/O
LDAP (*2)
- full LDAP URL support
DICT
- extended DICT URL support
FILE
- URL support
2004-08-12 22:08:46 +08:00
- "uploads"
- resume
2000-05-23 01:35:35 +08:00
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
2003-09-19 20:55:35 +08:00
FOOTNOTES
=========
*1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, schannel (native
Windows), Secure Transport (native iOS/OS X) or qssl (native IBM i)
2003-06-26 19:36:32 +08:00
*2 = requires OpenLDAP
*3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
2003-09-19 20:55:35 +08:00
*4 = requires FBopenssl
*5 = requires a krb4 library, such as the MIT one or similar.
2004-08-12 22:08:46 +08:00
*6 = requires c-ares
*7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1
2007-05-26 05:20:39 +08:00
*8 = requires libssh2
*9 = requires OpenSSL, GnuTLS, NSS, yassl or SSPI (native Windows)