Learn curl from the basics to production-grade: pre-requisites & environment setup, the history of httpget/1996 through curl 8.x & libcurl, core concepts & URL transfer architecture, basic HTTP requests, response headers & redirect handling, POST PUT DELETE & form data, JSON & REST API testing, download & upload files, config file & environment configuration, proxy & networking, authentication cookies & session, timeouts retries & rate limiting, TLS/SSL & certificates, secure authentication & secrets handling, modern protocols HTTP/2 HTTP/3 & WebSocket, parallel transfer & performance, scripting & automation, API testing tools & the curl-based ecosystem, debugging & troubleshooting, the latest stable curl 8.x features, libcurl & programming language integration, production readiness & security hardening, through to the best-practice ecosystem & final reflections, across 23 episodes.
Before diving deeper into curl, there are a few basic skills and tools you need to prepare first, starting with a willingness to learn the Command Line Interface, an understanding of the basic concepts of HTTP and networking, up to verifying that curl 8.21.x is installed and ready to use in your own environment.

Tracing curl's journey from its beginnings as httpget in 1996 to becoming the de-facto standard for URL-based data transfer used on almost every operating system, while understanding why a single tool can handle dozens of protocols at once.

Dissecting what actually happens behind a single curl command line: from URL parsing, DNS resolution, TCP and TLS connection, to sending and receiving responses, plus getting to know the core options and exit codes.

Running your first HTTP request with curl: understanding the body output on GET, the difference with HEAD, and dissecting verbose mode to read the request and response flow line by line.

Controlling the HTTP conversation with more precision: sending and overriding request headers, reading and saving response headers, following redirects safely, and managing cookies between requests.

Moving from reading to writing: sending data with POST, setting PUT, PATCH, and DELETE methods, auto-encoding form values, and uploading files via multipart form data.

In this episode we'll send JSON bodies to a REST API complete with the Content-Type header, use the --json shorthand, process responses with jq, and build reproducible CRUD workflows and status code checks.

In this episode we'll download files with a custom name or the original name from the server, resume interrupted downloads, upload files via PUT, access FTP and SFTP, and make use of the progress bar.

In this episode we'll store favorite curl options in a config file, use --config for specific projects, and understand how curl reads the proxy environment variables and their overrides.

In this episode we'll route traffic through HTTP, HTTPS, and SOCKS5 proxies, handle proxy authentication, and use advanced networking features such as DNS overrides and connecting to specific hosts.
