Grâce à Google et à Stack Overflow, je pense avoir compris la différence entre le pipelining HTTP régulier et le multiplexage HTTP (par exemple, avec SPDY), j'ai donc fait le diagramme ci-dessous pour montrer les différences entre le pipelining et le multiplexage sur la base de trois requêtes HTTP régulières.
Mes deux questions sont:
Ce n'est pas incorrect, mais il y a un aspect important qu'il omet. HTTP exige que vous remettiez réponse complète avant que toute autre demande puisse continuer. Ce que vous montrez dans le diagramme est correct dans le sens où avec SPDY, nous pouvons enfin briser l'exigence de "tête de ligne" et fournir les réponses dès qu'elles deviennent disponibles. Cependant, nous n'avons pas non plus à attendre qu'une demande soit entièrement terminée.
Imaginez deux requêtes, toutes deux de plusieurs ko: chaque requête aura plusieurs paquets, appelez-les [r1p1, r1p2]
et [r2p1, r2p2]
. HTTP exige que les pN arrivent dans l'ordre exact. SPDY, d'autre part nous permet ce qui suit: [r2p1, r1p1, r1p2, r2p2]
.
Il convient également de mentionner qu'avec SPDY, nous pouvons utiliser les priorités de demande pour indiquer au serveur quelles demandes doivent avoir la priorité, même si elles arrivent plus tard sur le fil (parmi une demi-douzaine d'autres fonctionnalités intéressantes).