Skip to main content

Designing an HTTP client

north hall
30 minutes


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.

← Back to schedule