Communauté RSS DEV

Plongée en profondeur - Comment fonctionne le codage de transfert en blocs

Le codage de transfert par blocs (chunked transfer encoding) est une fonctionnalité de HTTP/1.1 qui permet aux serveurs de diffuser des données de manière incrémentale sans connaître la taille totale de la réponse à l'avance. Il est utile pour les API de streaming, les mises à jour en direct et les réponses volumineuses ou générées dynamiquement. Dans le codage de transfert par blocs, les réponses HTTP sont modifiées en une série de blocs, chacun précédé de sa taille en octets. Le client reçoit les données de manière incrémentale et sait que la réponse est terminée lorsqu'un bloc de longueur nulle apparaît. Un exemple pratique utilisant FastAPI et curl illustre le fonctionnement du codage de transfert par blocs. L'exemple montre comment chaque bloc commence par sa longueur en hexadécimal, suivi des données, et le bloc suivant commence après un saut de ligne. La réponse se termine par un bloc de longueur nulle, indiquant la fin de la transmission des données. En interne, le framework Starlette reçoit les segments de données produits et envoie chaque bloc au serveur ASGI sous-jacent, qui le formate conformément à la spécification du codage de transfert par blocs HTTP/1.1. HTTP/2 et HTTP/3 n'utilisent pas le codage par blocs, utilisant à la place une couche de trame binaire plus efficace qui permet le multiplexage de plusieurs flux sur une seule connexion. Comprendre le codage de transfert par blocs permet de construire de meilleures API de streaming et de déboguer efficacement les interactions HTTP complexes.
favicon
dev.to
Deep Dive - How Chunked Transfer Encoding Works
Image illustrant l'article : Plongée en profondeur - Comment fonctionne le codage de transfert en blocs
Create attached notes ...