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.