2012-05-07 13 views
49

Grazie a Google e Stack Overflow, penso di aver compreso la differenza tra pipeline HTTP normale e multiplexing HTTP (ad esempio, con SPDY), quindi ho fatto il diagramma seguente per mostrare le differenze tra pipelining e multiplexing basati su tre richieste HTTP regolari.Differenza tra piping HTTP e multiplexing HTTP con SPDY

enter image description here

Le mie due domande sono:

  1. è l'immagine corretta?
  2. È vero che se il pipelining non avesse lo head-of-line blocking problem sarebbe veloce come il multiplexing HTTP? O ho perso un'ulteriore differenza?

risposta

47

Non è errato, ma c'è un aspetto importante che omette. HTTP richiede di fornire l'intera risposta prima che qualsiasi altra richiesta possa procedere. Quello che stai mostrando nel diagramma è corretto nel senso che con SPDY possiamo finalmente rompere il requisito del "capo della linea" e fornire le risposte non appena diventano disponibili. Tuttavia, non dobbiamo nemmeno aspettare che la richiesta venga completata completamente.

Immaginate due richieste, entrambe di diverse dimensioni kb: ogni richiesta avrà più pacchetti, chiamateli [r1p1, r1p2] e [r2p1, r2p2]. HTTP richiede che i PN arrivino nell'ordine esatto. SPDY, d'altra parte ci permette quanto segue: [r2p1, r1p1, r1p2, r2p2].

Vale anche la pena ricordare che con SPDY possiamo usare le priorità di richiesta per suggerire al server quali richieste dovrebbero avere la precedenza, anche se arrivano più tardi sul filo (tra una mezza dozzina di altre grandi caratteristiche).

+0

@Matt hai + 1ed la * risposta *, perché la * domanda * conteneva un diagramma fantastico? O forse hai allegato solo il tuo commento in modo errato ... –

+0

Sì, commento allegato errato. – Matt

+1

E la seconda domanda? > È vero che se il pipelining non avesse il problema del blocco della linea di testa sarebbe veloce come il multiplexing HTTP? O ho perso un'ulteriore differenza? – CMCDragonkai

Problemi correlati