Existem vários motivos pelos quais o pipelining é mais rápido que as conexões HTTP persistentes:
- Várias solicitações HTTP podem ser agrupadas em um único segmento TCP
- Várias respostas HTTP (para arquivos pequenos) podem ser agrupadas em um único (ou menos) segmento (s) TCP
- O início lento é na verdade bastante rápido, ou seja, exponencial. Depois de n tempos de ida e volta, o tamanho do lote já está entre 2 ^ n para 2 ^ (n + 1) segmentos longos. Para n = 10, isso significa 1024… 2048 segmentos ou (tipicamente) 140… 300 Kilobytes por RTT.
- Se a conexão TCP ainda estiver aberta a partir de uma solicitação HTTP anterior (ou conjunto de solicitações), já estaremos fora da fase de início lento.
Como o pipelining é simples de implementar para a maioria dos sistemas, eu iria de qualquer maneira.