Es ist wichtig zu verstehen, warum der Overhead einer HTTP-Anfrage eine solche Auswirkung hat.
In seiner einfachsten Form besteht eine HTTP-Anfrage darin, einen Socket zu öffnen, die Anfrage an den offenen Socket zu senden und die Antwort zu lesen.
Um einen Socket zu öffnen, sendet der TCP/IP-Stack des Clients ein TCP-SYN-Paket an den Server. Der Server antwortet mit einem SYN-ACK und der Client antwortet darauf mit einem ACK.
Bevor Sie also ein einzelnes Byte an Anwendungsdaten senden, müssen Sie mindestens eine ganze anderthalb Runde auf den Server warten.
Dann muss der Client die Anfrage senden, warten, bis der Server die Anfrage analysiert, die angeforderten Daten findet, zurücksendet - das ist eine weitere Rundreise plus einige Server-Overhead (hoffentlich ein kleiner Overhead, obwohl ich gesehen einige langsame Server) plus die Zeit, die tatsächlichen Daten zu übertragen, und das ist der beste Fall, unter der Annahme, keine Netzwerküberlastung, die dazu führen würde, dass Pakete gelöscht und erneut übertragen werden.
Jede Chance, die Sie vermeiden müssen, sollten Sie.
Moderne Browser werden mehrere Anfragen parallel ausgeben, um den damit verbundenen Overhead zu reduzieren. HTTP-Anfragen können theoretisch am selben Socket durchgeführt werden, was die Dinge etwas besser macht. Im Allgemeinen sind Netzwerk-Roundtrips jedoch schlecht für die Leistung und sollten vermieden werden.
Ich habe ein paar Zahlen vor ein paar Jahren - für eine 43 Byte 1x1 GIF, der HTTP-Overhead (nicht einschließlich g TCP Paket Overhead) war mehr als 240 Bytes. –
Sie könnten hinzufügen, dass je nach Bild die Komprimierung effizienter sein kann. –
TCP/IP ist auch effizienter beim Übertragen größerer Dateien. – David