2012-05-07 10 views
49

Gracias a Google y Stack Overflow, creo que entendí la diferencia entre HTTP tradicional y HTTP multiplexing (por ejemplo, con SPDY), así que hice el diagrama a continuación para mostrar las diferencias entre pipelining y multiplexing basado en tres solicitudes HTTP regulares.Diferencia entre HTTP pipeling y HTTP multiplexing con SPDY

enter image description here

Mis dos preguntas son:

  1. es la imagen correcta?
  2. ¿Es cierto que si el pipeline no tuviera el head-of-line blocking problem sería tan rápido como el multiplexado HTTP? ¿O me perdí una diferencia adicional?

Respuesta

47

No es incorrecto, pero hay un aspecto importante que omite. HTTP requiere que entregue la respuesta completa antes de que cualquier otra solicitud pueda continuar. Lo que se muestra en el diagrama es correcto en el sentido de que con SPDY podemos finalmente romper el requisito de "cabecera de línea" y entregar las respuestas a medida que estén disponibles. Sin embargo, tampoco tenemos que esperar que la solicitud se complete por completo.

Imagine dos solicitudes, ambas de varios kb de tamaño: cada solicitud tendrá varios paquetes, llámelos [r1p1, r1p2] y [r2p1, r2p2]. HTTP requiere que los pN lleguen en orden exacto. SPDY, por otro lado, nos permite lo siguiente: [r2p1, r1p1, r1p2, r2p2].

También vale la pena mencionar que con SPDY podemos usar las prioridades de las solicitudes para indicar el servidor cuyas solicitudes deben tener prioridad, incluso si llegan más tarde por el cable (entre media docena de otras funciones excelentes).

+0

@Matt usted + 1ed la * respuesta *, porque la * pregunta * contuvo un diagrama impresionante? O tal vez solo adjuntaste tu comentario erróneamente ... –

+0

Sí, adjunta comentario incorrecto. – Matt

+1

¿Qué hay de la 2da pregunta? > ¿Es cierto que si la canalización no tuviera el problema de bloqueo de cabecera de línea, sería tan rápido como la multiplexación HTTP? ¿O me perdí una diferencia adicional? – CMCDragonkai

Cuestiones relacionadas