mirror of
https://github.com/curl/curl.git
synced 2024-12-09 06:30:06 +08:00
136 lines
3.7 KiB
Plaintext
136 lines
3.7 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
|
|
- persistant 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
|
|
- replacable memory functions (malloc, free, realloc, etc)
|
|
- asynchronous name resolving (*6)
|
|
- both a push and a pull style interface
|
|
|
|
HTTP
|
|
- HTTP/1.1 compliant (optionally uses 1.0)
|
|
- GET
|
|
- PUT
|
|
- HEAD
|
|
- POST
|
|
- Pipelining
|
|
- multipart formpost (RFC1867-style)
|
|
- authentication: Basic, Digest, NTLM(*1), 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"
|
|
|
|
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 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 TSL" 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
|
|
|
|
FOOTNOTES
|
|
=========
|
|
|
|
*1 = requires OpenSSL, GnuTLS, NSS or yassl
|
|
*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 or NSS, as GnuTLS only supports SSLv3 and TLSv1
|
|
*8 = requires libssh2
|