Ważne jest, aby zrozumieć, dlaczego obciążenie związane z żądaniem HTTP ma taki wpływ.
W najprostszej formie żądanie HTTP polega na otwarciu gniazda, wysłaniu żądania na otwarte gniazdo i odczytaniu odpowiedzi.
Aby otworzyć gniazdo, stos protokołu TCP/IP klienta wysyła pakiet TCP SYN na serwer. Serwer odpowiada za pomocą SYN-ACK, a klient odpowiada na to za pomocą ACK.
Tak więc, zanim wyślesz jeden bajt danych aplikacji, musisz przynajmniej na pół godziny czekać na serwer.
Następnie klient musi wysłać żądanie, poczekać, aż serwer przeanalizuje żądanie, odszuka żądane dane, odeśle je - to kolejna podróż w obie strony plus część po stronie serwera (mam nadzieję, że niewielki koszt, chociaż mam zobaczyłem kilka wolnych serwerów) plus czas transmisji rzeczywistych danych, i to jest najlepszy przypadek, zakładając brak przeciążenia sieci, który spowodowałby odrzucenie pakietów i ich ponowne przesłanie.
Każda szansa, aby tego uniknąć, powinieneś.
Współczesne przeglądarki będą wysyłać wiele żądań równolegle, próbując zmniejszyć niektóre związane z tym koszty. Żądania HTTP mogą być teoretycznie wykonywane na tym samym gnieździe, dzięki czemu rzeczy są trochę lepsze. Ogólnie rzecz biorąc, podróże w obie strony są złe pod względem wydajności i należy ich unikać.
Zrobiłem kilka numerów kilka lat temu - dla jednego 43 bajtu 1x1 GIF, obciążenie HTTP (nie wliczając w to g narzutowy pakiet TCP) przekraczało 240 bajtów. –
Można dodać, że w zależności od obrazu kompresja może być bardziej wydajna. –
Ponadto, TCP/IP jest bardziej wydajny w przypadku przesyłania większych plików. – David