Différence entre le transfert HTTP et le multiplexage HTTP avec SPDY

Grâce à Google et à Stack Overflow, je pense avoir compris la différence entre le traitement HTTP standard et le multiplexage HTTP (avec SPDY, par exemple).

entrer la description de l'image ici

Mes deux questions sont:

  1. L’image est-elle correcte?
  2. Est-il vrai que si le traitement en pipeline ne posait pas le problème du blocage en tête de ligne, il serait aussi rapide que le multiplexage HTTP? Ou ai-je manqué une différence supplémentaire?

Ce n’est pas faux, mais il y a un aspect important qu’il omet. HTTP exige que vous livriez la réponse complète avant toute autre demande. Ce que vous montrez dans le diagramme est correct dans le sens où avec SPDY, nous pouvons enfin briser le critère de la “tête de ligne” et livrer les réponses dès qu’elles sont disponibles. Cependant, nous n’avons pas non plus besoin d’attendre que la demande soit complétée.

Imaginez deux requêtes, toutes deux de plusieurs kb en taille: chaque requête aura plusieurs paquets, appelez-les [r1p1, r1p2] et [r2p1, r2p2] . HTTP exige que les pN arrivent dans l’ordre exact. SPDY, par contre, nous permet d’avoir: [r2p1, r1p1, r1p2, r2p2] .

Il convient également de mentionner qu’avec SPDY, nous pouvons utiliser les priorités de requêtes pour suggérer au serveur quelles demandes devraient avoir la priorité, même si elles arrivent plus tard (parmi une demi-douzaine d’autres fonctionnalités exceptionnelles).