Nasze aplikacje internetowe stale się rozwijają pod względem zakresu, ambicji i funkcjonalności – to bardzo dobre zjawisko. Jednak nieustanne dążenie do bogatszego internetu stymuluje inny trend: ilość danych pobieranych przez każdą aplikację rośnie w stabilnym tempie. Aby zapewnić wysoką wydajność, musimy zoptymalizować dostarczanie każdego bajtu.
Jak wygląda nowoczesna aplikacja internetowa? Archiwum HTTP może pomóc nam odpowiedzieć na to pytanie. Projekt śledzi,jak buduje się sieć, okresowo indeksując najpopularniejsze witryny (ponad 300 000 z listy Alexa Top 1M) oraz rejestrując i agregując statystyki dotyczące liczby zasobów, typów treści i innych metadanych dla każdego miejsca docelowego.
Powyższe dane pokazują trend wzrostu liczby pobieranych bajtów w przypadku popularnych miejsc docelowych w internecie w okresie od stycznia 2013 r. do stycznia 2014 roku. Oczywiście nie każda witryna rozwija się w tym samym tempie lub wymaga takiej samej ilości danych, dlatego wyróżniamy różne kwantyle w rozkładzie: 50 (mediana), 75 i 90.
Mediana witryny na początku 2014 r. składa się z 75 żądań, które dają łącznie 1054 KB łącznej liczby przesłanych bajtów, a łączna liczba bajtów (i żądań) rosła w stałym tempie w poprzednim roku. Sama sytuacja nie powinno być zaskakująca, ale niesie ze sobą istotne znaczenie dla wydajności: tak, szybkość połączenia internetowego staje się większa, ale w różnym tempie w różnych krajach. Wielu użytkowników w dalszym ciągu podlega limitom transmisji danych i kosztownym abonamentom z pomiarem użycia danych, zwłaszcza w przypadku telefonów komórkowych.
W przeciwieństwie do ich odpowiedników na komputer aplikacje internetowe nie wymagają osobnego procesu instalacji: wystarczy wpisać URL, a my już działa – to kluczowa funkcja w internecie. Aby to osiągnąć, często musimy pobierać dziesiątki, a czasem setki różnych zasobów, z których każda może liczyć megabajty danych, które muszą się zebrać w setki milisekund. Dzięki temu użytkownicy mogą natychmiast korzystać z internetu, na którym nam zależy.
Spełnienie tych wymagań to nie lada wyczyn. Dlatego optymalizacja wydajności treści ma kluczowe znaczenie: eliminacja niepotrzebnych plików do pobrania, optymalizacja kodowania transferu wszystkich zasobów za pomocą różnych technik kompresji i wykorzystanie buforowania, gdy to możliwe, w celu wyeliminowania nadmiarowych plików do pobrania.