RSS DEV-Gemeinschaft

Tieftauchen - So funktioniert Chunked Transfer Encoding

Die Chunk-Übertragung (Chunked Transfer Encoding) ist ein Feature von HTTP/1.1, das es Servern ermöglicht, Daten inkrementell zu streamen, ohne die Gesamtgröße der Antwort im Voraus zu kennen. Dies ist nützlich für Streaming-APIs, Live-Updates und große oder dynamisch generierte Antworten. Bei der Chunk-Übertragung werden HTTP-Antworten in eine Reihe von Chunks (Datenblöcken) umgewandelt, wobei jeder Chunk mit seiner Größe in Bytes vorangestellt ist. Der Client empfängt die Daten inkrementell und erkennt das Ende der Antwort, wenn ein Chunk der Länge Null auftritt. Ein praktisches Beispiel mit FastAPI und curl verdeutlicht die Funktionsweise der Chunk-Übertragung. Das Beispiel zeigt, wie jeder Chunk mit seiner Länge in hexadezimaler Darstellung beginnt, gefolgt von den Daten, und der nächste Chunk nach einer neuen Zeile beginnt. Die Antwort endet mit einem Chunk der Länge Null, der das Ende der Datenübertragung signalisiert. Im Hintergrund empfängt das Starlette-Framework die generierten Datensegmente und sendet jeden Chunk an den zugrundeliegenden ASGI-Server, der ihn gemäß der HTTP/1.1 Chunk-Übertragungsspezifikation formatiert. HTTP/2 und HTTP/3 verwenden keine Chunk-Codierung, sondern eine effizientere binäre Framing-Layer, die das Multiplexing mehrerer Streams über eine einzige Verbindung ermöglicht. Das Verständnis der Chunk-Übertragung hilft beim Erstellen besserer Streaming-APIs und beim effektiven Debuggen komplexer HTTP-Interaktionen.
favicon
dev.to
Deep Dive - How Chunked Transfer Encoding Works
Bild zum Artikel: Tieftauchen - So funktioniert Chunked Transfer Encoding
Create attached notes ...