Designing an HTTP client
07-21, 11:20–11:50 (Europe/Prague), North Hall

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.

Expected audience expertise

intermediate