#[1]daniel.haxx.se » Feed [2]daniel.haxx.se » Comments Feed
  [3]daniel.haxx.se » Mastering the curl command line Comments Feed
  [4]alternate [5]alternate [6]alternate

  [7]daniel.haxx.se

[8]daniel.haxx.se

  [9]Search

  (BUTTON) Primary Menu [10]Skip to content
    * [11]About
    * [12]Contact

  Search for: ____________________ Search

  [13]cURL and libcurl

Mastering the curl command line

  [14]August 8, 2023 [15]Daniel Stenberg [16]3 Comments

  For the first time ever, I am going to present a single, very long,
  video class with the title shown above.

  This session will be streamed and recorded live on August 31, starting
  at 16:00 UTC (18:00 CEST, 09:00 PDT) and is expected to take about two
  and a half hours. Due to many uncertainties, the stream might of course
  be longer even if the end recording might get edited down a little.

  The stream will be done on my usual twitch channel:

  [17]https://www.twitch.tv/curlhacker

  The agenda for this monster session might still be tweaked a little
  before it happens but the work in progress version is shown below. It
  should cover most of what curl can and knows in 2023.

  There is no need to sign up. It is entirely free of charge. All you
  need to do to enjoy it live is to go to the above link at the correct
  time on the right day. You can participate and ask questions live in
  the designated chat while the stream is live.

The project (10 min)

    * start
    * name
    * products
    * open source
    * development
    * releases
    * issues
    * pull requests
    * asking for help
    * paying for help

Command line (20 min)

    * command line options
         + long vs short names
         + depends on version
    * URLs
         + scheme
         + name and password
         + host
         + port number
         + path
         + fragment
         + browsers’ address bar
         + options and URLs
         + connection reuse
         + parallel transfers
    * trurl
    * URL globbing
    * List options
    * config file
    * passwords
    * progress meter

Using curl (30 min)

    * verbose
         + --trace
         + --write-out
    * version
    * persistent connections
    * Downloads
         + What exactly is downloading?
         + Storing downloads
         + Download to a file named by the URL
         + Use the target file name from the server
         + HTML and charsets
         + Compression
         + Shell redirects
         + Multiple downloads
         + My browser shows something else
         + Maximum file size
         + Storing metadata in file system
         + Raw
         + Retry
         + Resuming and ranges
    * Uploads
    * Transfer controls
         + Stop slow transfers
         + Rate limiting
         + Request rate limiting
    * Connections
         + Name resolve tricks
         + Connection timeout
         + Network interface
         + Local port number
         + Keep alive
    * Timeouts
    * .netrc
    * Exit status
    * SCP and SFTP
    * Reading email
    * Sending email
    * MQTT
    * TFTP
    * TELNET
    * DICT
    * Copy as curl
    * --libcurl
    * [18]h2c

TLS details (15 min)

    * ciphers
    * enable TLS
    * verifying server certificates
    * OCSP stapling
    * client certificates
    * TLS backends
    * SSLKEYLOGFILE

Proxies (20 min)

    * Discover your proxy
    * PAC
    * Captive portals
    * Proxy type
    * HTTP proxy
    * SOCKS proxy (tor)
    * MITM proxy
    * Authentication
    * HTTPS proxy
    * Proxy environment variables
    * Proxy headers

HTTP (30 min)

    * Protocol basics
    * Method
    * HTTP response codes
    * Responses
    * Authentication
    * Ranges
    * HTTP versions
    * Conditionals
    * HTTPS
    * HTTP POST
    * Multipart formpost
    * -d vs -F
    * Redirects
    * Modify the HTTP request
    * HTTP PUT
    * Cookies
    * HTTP/2
    * Alternative Services
    * HTTP/3
    * HSTS

FTP (10 min)

    * Authentication
    * Directories
    * Uploading
    * Custom FTP commands
    * Two connections
    * Directory traversing

Rounding off (5 min)

    * How to dig deeper
    * Where is curl going

  [19]command-line[20]cURL and libcurl[21]streaming

Post navigation

  [22]Previous Postcurl write-out to files

3 thoughts on “Mastering the curl command line”

   1.
  [23]Petru says:
      [24]August 8, 2023 at 16:27
      The agenda looks interesting. Looking forward to watching the
      session. ?
      [25]Reply
   2.
  [26]Morgan M says:
      [27]August 10, 2023 at 04:06
      This caught my eye as a particularly useful style of presentation
      and topic. Thank you, good luck with it! Ill look out for out later
      [28]Reply
   3.
  John Orrieliopisibe says:
      [29]August 10, 2023 at 10:30
      There is typo in 1st paragraph firs -> first
      [30]Reply

Leave a Reply [31]Cancel reply

  Your email address will not be published. Required fields are marked *

  Comment *
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________

  Name * ______________________________

  Email * ______________________________

  Website ______________________________

  Time limit is exhausted. Please reload CAPTCHA. nine357six _____

  Post Comment

  Δ
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________
  _____________________________________________

  This site uses Akismet to reduce spam. [32]Learn how your comment data
  is processed.

Recent Posts

    * [33]Mastering the curl command line August 8, 2023
    * [34]curl write-out to files August 1, 2023
    * [35]introducing curl command line variables July 31, 2023
    * [36]curl 8.2.1 July 26, 2023
    * [37]curl 8.2.0 July 19, 2023
    * [38]curl user survey 2023 analysis June 17, 2023

Recent Comments

    * John Orrieliopisibe on [39]Mastering the curl command line
    * [40]Morgan M on [41]Mastering the curl command line
    * [42]Petru on [43]Mastering the curl command line
    * [44]Amin on [45]introducing curl command line variables
    * [46]Daniel Stenberg on [47]curl write-out to files
    * Matthias Hörmann on [48]curl write-out to files
    * John Marshall on [49]NVD damage continued
    * Mark Esler on [50]NVD damage continued
    * Daniel G on [51]NVD damage continued
    * [52]Petru on [53]Games curl too

tech, open source and networking

Daniel Stenberg

  Swedish open source developer and curl maintainer.

  Sponsor me:[54] on GitHub
  Follow me: [55]@bagder
  Keep up: [56]RSS-feed

  CAPTION: August 2023

  M    T   W  T  F  S  S
     [57]1 2  3  4  5  6
  7  [58]8 9  10 11 12 13
  14 15    16 17 18 19 20
  21 22    23 24 25 26 27
  28 29    30 31

  [59]« Jul

  [60]Proudly powered by WordPress

References

  Visible links:
  1. https://daniel.haxx.se/blog/feed/
  2. https://daniel.haxx.se/blog/comments/feed/
  3. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/feed/
  4. https://daniel.haxx.se/blog/wp-json/wp/v2/posts/22806
  5. https://daniel.haxx.se/blog/wp-json/oembed/1.0/embed?url=https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/
  6. https://daniel.haxx.se/blog/wp-json/oembed/1.0/embed?url=https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/&format=xml
  7. https://daniel.haxx.se/blog/
  8. https://daniel.haxx.se/blog/
  9. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#search-container
 10. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#content
 11. https://daniel.haxx.se/blog/about/
 12. https://daniel.haxx.se/blog/contact/
 13. https://daniel.haxx.se/blog/category/floss/curl/
 14. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/
 15. https://daniel.haxx.se/blog/author/daniel/
 16. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#comments
 17. https://www.twitch.tv/curlhacker
 18. https://curl.se/h2c/
 19. https://daniel.haxx.se/blog/tag/command-line/
 20. https://daniel.haxx.se/blog/tag/curl-and-libcurl/
 21. https://daniel.haxx.se/blog/tag/streaming/
 22. https://daniel.haxx.se/blog/2023/08/01/curl-write-out-to-files/
 23. https://gulian.uk/
 24. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#comment-26731
 25. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/?replytocom=26731#respond
 26. http://morganwewbdev.com/
 27. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#comment-26732
 28. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/?replytocom=26732#respond
 29. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#comment-26734
 30. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/?replytocom=26734#respond
 31. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/#respond
 32. https://akismet.com/privacy/
 33. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/
 34. https://daniel.haxx.se/blog/2023/08/01/curl-write-out-to-files/
 35. https://daniel.haxx.se/blog/2023/07/31/introducing-curl-command-line-variables/
 36. https://daniel.haxx.se/blog/2023/07/26/curl-8-2-1/
 37. https://daniel.haxx.se/blog/2023/07/19/curl-8-2-0/
 38. https://daniel.haxx.se/blog/2023/06/17/curl-user-survey-2023-analysis/
 39. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/comment-page-1/#comment-26734
 40. http://morganwewbdev.com/
 41. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/comment-page-1/#comment-26732
 42. https://gulian.uk/
 43. https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/comment-page-1/#comment-26731
 44. http://okta.com/
 45. https://daniel.haxx.se/blog/2023/07/31/introducing-curl-command-line-variables/comment-page-1/#comment-26730
 46. https://daniel.haxx.se/
 47. https://daniel.haxx.se/blog/2023/08/01/curl-write-out-to-files/comment-page-1/#comment-26729
 48. https://daniel.haxx.se/blog/2023/08/01/curl-write-out-to-files/comment-page-1/#comment-26728
 49. https://daniel.haxx.se/blog/2023/06/12/nvd-damage-continued/comment-page-1/#comment-26726
 50. https://daniel.haxx.se/blog/2023/06/12/nvd-damage-continued/comment-page-1/#comment-26725
 51. https://daniel.haxx.se/blog/2023/06/12/nvd-damage-continued/comment-page-1/#comment-26724
 52. https://gulian.uk/
 53. https://daniel.haxx.se/blog/2023/06/09/games-curl-too/comment-page-1/#comment-26723
 54. https://github.com/users/bagder/sponsorship
 55. https://mastodon.social/@bagder
 56. https://daniel.haxx.se/blog/feed/
 57. https://daniel.haxx.se/blog/2023/08/01/
 58. https://daniel.haxx.se/blog/2023/08/08/
 59. https://daniel.haxx.se/blog/2023/07/
 60. https://wordpress.org/

  Hidden links:
 62. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#command-line-20-min
 63. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#using-curl-30-min
 64. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#tls-details-15-min
 65. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#proxies-20-min
 66. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#http-30-min
 67. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#ftp-10-min
 68. https://gist.github.com/bagder/253a2368c17ac6a3411af3861068fb6a#rounding-off-5-min