#[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