Porównanie wydajności HTTP/1.1, HTTP/2 i HTTP/2 + Server Push

Opublikowano wyniki badania wydajności różnych metod pobierania kolekcji zasobów, używając protokołów HTTP/1.1, HTTP/2 i HTTP/2 + Server Push do komunikacji z serwerem. W badaniu oceniono również wpływ obecności żądanych danych w pamięci podręcznej przeglądarki oraz manipulacje zasobami na poziomie logiki aplikacji (łączenie zasobów w jeden blok JSON).

Test wydajności wykonywania 25 zapytań wykazał ogólnie przewidywalne wyniki — zauważalne opóźnienie zapytania przez HTTP/1.1 przy pustej pamięci podręcznej oraz przewagę wydajności zasobów w jednym bloku (testy oznaczone 'compound'). Wydajność Firefox i Chrome była na podobnym poziomie, jednak obecność danych w pamięci podręcznej nie przyniosła oczekiwanego wzrostu efektywności.

Porównanie wydajności HTTP/1.1, HTTP/2 i HTTP/2 + Server Push

Jednak w teście obciążenia 500 zapytań pojawiło się zauważalne opóźnienie Chrome w porównaniu do Firefox przy przesyłaniu dużej liczby zapytań oraz opóźnienie Firefox w porównaniu do Chrome przy użyciu mechanizmu Server Push i w sytuacji, gdy HTTP/2 miało dostęp do większości danych w pamięci podręcznej przeglądarki. Chrome wykazał bardziej efektywne zarządzanie pamięcią podręczną, a Firefox bardziej efektywną obsługę zewnętrznych zapytań.

Porównanie wydajności HTTP/1.1, HTTP/2 i HTTP/2 + Server Push

Porównanie wydajności HTTP/1.1, HTTP/2 i HTTP/2 + Server Push

Na podstawie wyników testów stwierdzono, że HTTP/2 umożliwia dość efektywne przetwarzanie oddzielnych zapytań dużej kolekcji zasobów. Różnice wydajności prostych schematów oddzielnego dostarczania zasobów w porównaniu do metod, w których zasoby są agregowane w jeden blok, nie są na tyle istotne, aby uzasadnić znaczną komplikację logiki przetwarzania po stronie aplikacji, serwera. Agregacja ma sens tylko w sytuacjach, w których wydajność ma najwyższy priorytet. Gdy ważniejsze jest uproszczenie logiki i prosty API, sensowne jest stosowanie oddzielnego przetwarzania zasobów.

Innym wnioskiem jest to, że pamięć podręczna przeglądarki przy użyciu HTTP/2 nie ma znacznego wpływu na wydajność przetwarzania żądań (całkowite wykonanie 501 żądania okazało się wolniejsze od wykonania 51 żądania przy 90% wypełnienia pamięci podręcznej w Firefoxie 1,2 razy oraz 2,3 razy w Chrome). Wykorzystanie Server Push nie przyniosło znaczących korzyści w Firefoxie, ale okazało się skuteczne przy ładowaniu dużej liczby zasobów w Chrome. Autorzy badania zauważyli również, że optymalizacja części serwerowej ma większy wpływ na wydajność niż optymalizacja kodu klienta wykonywanego w przeglądarce.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster