Optymalizowanie obsługi treści

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.

Trendy archiwum HTTP

50 centyl 75. percentyl 90 percentyl
HTML 13 KB 26 KB 54 KB
zdjęcia; 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Inne 282 KB 308 KB 353 KB
Łącznie 1054 KB 1985 KB 3486 KB

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.