As solicitações HTTP de pipeline realmente resultam em carregamentos de página mais rápidos? Por quê?

1

Um argumento frequentemente citado é basicamente aquele contido nesta foto  

No entanto, isso não reflete a realidade de uma conexão TCP subjacente que deve ser iniciada lentamente e em que o cliente verifica todos os outros segmentos recebidos do servidor. Sempre que o cliente tiver algo para enviar (por exemplo, uma solicitação HTTP), os ACKs serão protegidos por senha. Então, onde está o ganho aqui?

    
por artistoex 31.05.2013 / 21:32

2 respostas

1

Existem vários motivos pelos quais o pipelining é mais rápido que as conexões HTTP persistentes:

  1. Várias solicitações HTTP podem ser agrupadas em um único segmento TCP
  2. Várias respostas HTTP (para arquivos pequenos) podem ser agrupadas em um único (ou menos) segmento (s) TCP
  3. 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.
  4. 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.

    
por 03.06.2013 / 21:03
1

A vantagem é manter o tubo o mais cheio possível, em vez de deixá-lo drenar entre as solicitações.

Com pipelining, o servidor - > a direção do cliente do pipe está constantemente cheia, para máxima taxa de transferência e latência mínima.

Sem pipelining, você tem um protocolo de "parar e esperar" onde o servidor - > a direção do cliente continua inativa entre o momento em que o último quadro de uma resposta é enviado e antes que o primeiro quadro da próxima resposta seja enviado. O tubo fica inativo durante todo o tempo acumulado, o que faz com que todas essas coisas aconteçam:

  1. O tempo que leva para o último quadro da primeira resposta do servidor transitar pela rede.
  2. O tempo que o cliente leva para agir no recebimento desse quadro e preparar sua nova solicitação.
  3. O tempo que a nova solicitação do cliente leva para transitar a rede.
  4. O tempo que o servidor leva para preparar sua resposta para a nova solicitação.
por 03.06.2013 / 21:25

Tags