目录

Features -- what can curl do

      _   _ ____  _
  ___| | | |  _ \| |
 / __| | | | |_) | |
| (__| |_| |  _ <| |___
 \___|\___/|_| \_\_____|

FEATURES

curl tool

  1. config file support
  2. multiple URLs in a single command line
  3. range “globbing” support: [0-13], {one,two,three}
  4. multiple file upload on a single command line
  5. custom maximum transfer rate
  6. redirectable stderr

libcurl supports

  1. full URL syntax with no length limit
  2. custom maximum download time
  3. custom least download speed acceptable
  4. custom output result after completion
  5. guesses protocol from host name unless specified
  6. uses .netrc
  7. progress bar/time specs while downloading
  8. “standard” proxy environment variables support
  9. compiles on win32 (reported builds on 40+ operating systems)
  10. selectable network interface for outgoing traffic
  11. IPv6 support on unix and Windows
  12. persistant connections
  13. socks5 support
  14. supports user name + password in proxy environment variables
  15. operations through proxy “tunnel” (using CONNECT)
  16. supports large files (>2GB and >4GB) both upload/download
  17. replacable memory functions (malloc, free, realloc, etc)
  18. asynchronous name resolving (*6)
  19. both a push and a pull style interface

HTTP

  1. HTTP/1.1 compliant (optionally uses 1.0)
  2. GET
  3. PUT
  4. HEAD
  5. POST
  6. Pipelining
  7. multipart formpost (RFC1867-style)
  8. authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and

SPNEGO (*4) to server and proxy

  1. resume (both GET and PUT)
  2. follow redirects
  3. maximum amount of redirects to follow
  4. custom HTTP request
  5. cookie get/send fully parsed
  6. reads/writes the netscape cookie file format
  7. custom headers (replace/remove internally generated headers)
  8. custom user-agent string
  9. custom referer string
  10. range
  11. proxy authentication
  12. time conditions
  13. via http-proxy
  14. retrieve file modification date
  15. Content-Encoding support for deflate and gzip
  16. “Transfer-Encoding: chunked” support for “uploads”

HTTPS (*1)

  1. (all the HTTP features)
  2. using client certificates
  3. verify server certificate
  4. via http-proxy
  5. select desired encryption
  6. force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1)

FTP

  1. download
  2. authentication
  3. kerberos4 (*5), kerberos5 (*3)
  4. active/passive using PORT, EPRT, PASV or EPSV
  5. single file size information (compare to HTTP HEAD)
  6. 'type=' URL support
  7. dir listing
  8. dir listing names-only
  9. upload
  10. upload append
  11. upload via http-proxy as HTTP PUT
  12. download resume
  13. upload resume
  14. custom ftp commands (before and/or after the transfer)
  15. simple “range” support
  16. via http-proxy
  17. all operations can be tunneled through a http-proxy
  18. customizable to retrieve file modification date
  19. no dir depth limit

FTPS (*1)

  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)

  1. both password and public key auth

SFTP (*8)

  1. both password and public key auth
  2. with custom commands sent before/after the transfer

TFTP

  1. download / upload

TELNET

  1. connection negotiation
  2. custom telnet options
  3. stdin/stdout I/O

LDAP (*2)

  1. full LDAP URL support

DICT

  1. extended DICT URL support

FILE

  1. URL support
  2. “uploads”
  3. resume

FOOTNOTES