2012-10-11 16 views
5

Suppongo che un modo per parafrasare questa domanda sia perché HTTP non può usare solo UDP? Quali funzionalità specifiche fornite dal TCP sono esplicitamente richieste da HTTP?Perché HTTP usa TCP?

+1

garanzia di consegna pacchetto nedeed – gureedo

+1

e protezione per il riordino dei pacchetti –

+1

Non esiste una 'garanzia di consegna pacchetto'. Quello che c'è è una garanzia che * se viene ricevuto un byte, * è il valore corretto del byte successivo nello stream, senza spazi e senza duplicati. – EJP

risposta

8

Ordinamento, non duplicazione, integrità, pacing di grandi carichi utili, ... come tutti gli altri ha bisogno davvero. Qualche anno fa ci fu una mossa per fornire HTTP su UDP per piccoli carichi utili che si adatterebbero in un singolo datagramma, e idem le risposte, ma la maggior parte dei payload HTTP sono troppo grandi per un datagramma, quindi il punto è perso.

+0

Non sapevo del movimento UDP. Come potrebbe il cliente sapere che la risposta si adatterebbe in un singolo datagramma? –

+0

@BrianWhite La mia ipotesi è che il cliente non possa sapere in tutti i casi. – grieve

+1

@BrianWhite Beh, questo era il problema. L'idea era di usarlo per richieste come HEAD che hanno piccoli carichi di richieste e di risposte. – EJP