HTTPX Logo
Bibliothek

HTTPX

Moderner HTTP-Client für Python – ruft fremde Server synchron oder asynchron ab, mit feingranularen Timeouts und voller Kontrolle über Weiterleitungen und Antwort-Streaming.

Offizielle Quelle: python-httpx.org

Überblick

HTTPX ist ein HTTP-Client für Python. Er löst Aufrufe an fremde Server aus – das Pendant zum Browser auf der Server-Seite. Anders als das klassische requests beherrscht HTTPX neben dem synchronen auch den asynchronen Betrieb (asyncio) sowie HTTP/2, und fügt sich damit nahtlos in nicht-blockierende Web-Anwendungen auf Basis von FastAPI ein.

Funktionsweise

Eine Anfrage wird zusammengestellt (Methode, Ziel-URL, Header) und über einen wiederverwendbaren Client an den Server geschickt:

  • Nicht-blockierend: Der Abruf läuft await-basiert ab. Während auf die Gegenstelle gewartet wird, bearbeitet die Anwendung andere Anfragen weiter.
  • Feingranulare Timeouts: Verbindungsaufbau, Lesen, Schreiben und Pool werden getrennt begrenzt – eine langsame oder hängende Gegenstelle hält den eigenen Dienst so nicht offen.
  • Kontrolle über den Ablauf: Weiterleitungen lassen sich explizit Schritt für Schritt verfolgen, und die Antwort kann gestreamt (häppchenweise) gelesen werden, statt sie komplett in den Speicher zu laden.

Typische Einsatzgebiete

Überall, wo ein Dienst andere Server aufruft: angebundene Fremd-APIs, Webhooks oder das serverseitige Abrufen externer Seiten. Im frahost-Website-Check holt HTTPX die zu prüfende Seite – abgesichert gegen Server-Side Request Forgery, gestreamt und mit hartem Zeitbudget, damit eine zickige Zielseite den Prüfdienst nie blockiert.

Grenzen und Einordnung

HTTPX ist der Client, nicht der Browser: Er führt kein JavaScript aus und rendert keine Seite – für echtes Browser-Rendering sind Werkzeuge wie Lighthouse zuständig. Den vollen Nutzen des asynchronen Betriebs spielt er zudem nur aus, wenn die umgebende Anwendung ebenfalls asynchron arbeitet.