• How to read this book
  • The cURL project
    • How it started
    • The name
    • What does curl do?
    • Project communication
    • Mailing list etiquette
    • Mailing lists
    • Reporting bugs
    • Releases
    • Security
    • Trust
    • The development team
    • Users of curl
    • Future
  • Get curl
    • Linux
    • Windows
    • macOS
  • Open Source
    • License
    • Copyright and Legal
    • Code of Conduct
    • Development
  • The source code
    • Code layout
    • Handling build options
    • Code style
    • Contributing
    • Reporting vulnerabilities
    • Web site
    • Building and installing
      • Build from source
      • Dependencies
      • TLS libraries
        • BoringSSL
  • Network and protocols
    • Networking simplified
    • Protocols
    • curl protocols
  • Command line basics
    • Command line options
    • Options depend on version
    • URLs
    • URL globbing
    • List options
    • Config file
    • Passwords
    • Progress meter
  • Using curl
    • Verbose
      • Trace options
      • Write out
    • Persistent connections
    • Downloads
    • Uploads
    • Connections
    • Timeouts
    • .netrc
    • Proxies
    • Exit status
    • FTP
      • Two connections
      • Directory traversing
      • Advanced FTP use
    • SCP and SFTP
    • IMAP and POP3
    • SMTP
    • TELNET
    • TLS
      • SSLKEYLOGFILE
    • Copy as curl
  • How to HTTP with curl
    • Protocol basics
    • Responses
    • Authentication
    • Ranges
    • HTTP versions
    • HTTPS
    • HTTP POST
    • Multipart formposts
    • -d vs -F
    • Redirects
    • Modify the HTTP request
    • HTTP PUT
    • Cookies
    • HTTP/2
    • Alternative Services
    • HTTP/3
    • HTTP cheat sheet
    • Scripting browser-like tasks
  • libcurl basics
    • Easy handle
    • Drive transfers
      • Drive with easy
      • Drive with multi
      • Drive with multi_socket
    • Connection reuse
    • Callbacks
      • Write data
      • Read data
      • Progress information
      • Header data
      • Debug
      • sockopt
      • SSL context
      • Seek and ioctl
      • Network data conversion
      • Opensocket and closesocket
      • SSH key
      • RTSP interleaved data
      • FTP matching
    • Cleanup
    • Name resolving
    • Proxies
    • Post transfer info
    • Share data between handles
    • URL API
    • API compatibility
    • –libcurl
    • Header files
    • Global initialization
    • multi-threading
    • curl easy options
      • TLS options
    • CURLcode return codes
    • Verbose operations
    • libcurl examples
      • Get a simple HTTP page
      • Get a page in memory
      • Submit a login form over HTTP
    • for C++ programmers
  • HTTP with libcurl
    • HTTP responses
    • HTTP requests
    • HTTP versions
    • HTTP ranges
    • HTTP authentication
    • Cookies with libcurl
    • Download
    • Upload
  • Bindings
  • libcurl internals
  • Index