Guy's Pod » Blog Archive » HTTP Pipelining – Not So Fast…(Nor Slow!)
Malgré tout ce qu'on a pu croire, le pipelining HTTP ne change pratiquement rien au temps de chargement des pages. Je suis déçu.
Qu'est-ce que le pipelining HTTP ? Voici normalement ce que fait un navigateur, pour chaque requête HTTP (en HTTP 1.0):
Ouverture d'une connexion TCP --> envoie de la requête HTTP --> réception de la réponse ---> fermeture de la connexion TCP.
Ouverture d'une connexion TCP --> envoie de la requête HTTP --> réception de la réponse ---> fermeture de la connexion TCP.
Ouverture d'une connexion TCP --> envoie de la requête HTTP --> réception de la réponse ---> fermeture de la connexion TCP.
...
Cela fait une connexion TCP pour *chaque* requête HTTP. Le pipelining consiste à balancer plusieurs requêtes HTTP sans attendre dans une même connexion TCP, et recevoir les réponses dans cette même connexion. Logiquement, on évite les multiples connexions TCP: On devrait donc gagner du temps. Mais cela ne semble pas être le cas (notamment dû au fait qu'une page web, désormais, inclue des données de multiples serveurs différents (google, facebook, twitter...), ce qui rend le pipelining d'autant moins intéressant).
EDIT: Sébastien R. me rectifie: Hors tout pipelining, HTTP 1.1 permet déjà d'envoyer plusieurs requêtes dans la même connexion TCP, mais le pipelining permet de ne pas avoir à attendre les réponses.
2012-08-07 15:43:17
http://www.guypo.com/technical/http-pipelining-not-so-fast-nor-slow/