HTTPX is a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2. It also includes a built-in command-line client.
We'll be taking a look at the architecture of the client, learning from the design decisions behind it, and gaining a better understanding of HTTP along the way.
Some of the aspects we'll be taking a look at include:
- Layered designs. How to design for separation of responsibilities. Why it matters, and the benefits it provides.
- What are you saying? From the bytes on the wire, though SSL, content encoding, compression, media and text encodings.
- Connection pooling in HTTP.
- Building packages that support both sync and async concurrency models.
- HTTP/1.1, HTTP/2, and HTTP/3.
- Supporting more complex requirements. Handling WebSockets and other protocol upgrades.
- Keeping it clean. Managing resource lifespans.