HTTP/2

Protokoły i standardy
Główna rewizja HTTP wprowadzająca multipleksowanie, kompresję nagłówków i lepszą wydajność względem HTTP/1.1.
← Wróć do słownika

Czym jest HTTP/2?

HTTP/2 to ważna wersja protokołu HTTP (standaryzowana jako RFC 7540), która wprowadza binarne ramki, multipleksowanie, kompresję nagłówków i push serwera, znacznie poprawiając wydajność WWW względem HTTP/1.1.

HTTP/2 a HTTP/1.1

CechaHTTP/1.1HTTP/2
FormatTekstowyBinarny
PołączeniaWiele (6-8 na hosta)Jedno, multipleksowane
Obsługa żądańSekwencyjnaRównoległe strumienie
Kompresja nagłówkówBrakKompresja HPACK
Push serweraNiedostępnyObsługiwany
PriorytetyzacjaBrakPriorytety strumieni

Jak działa HTTP/2

HTTP/1.1 (Head-of-Line Blocking):

Connection 1: Request A ──────────► Response A

Connection 2: Request B ──────────► Response B

Connection 3: Request C ──────────► Response C

(Multiple connections, sequential per connection)

HTTP/2 (Multiplexing):

Single Connection:

├── Stream 1: Request A ──► Response A

├── Stream 2: Request B ──► Response B

├── Stream 3: Request C ──► Response C

└── All interleaved on same connection

Najważniejsze funkcje

Warstwa binarnych ramek

HTTP/2 Frame Structure:

┌─────────────────────────────────────┐

│ Length (24 bits) │

├─────────────────────────────────────┤

│ Type (8 bits) │ Flags (8 bits) │

├─────────────────────────────────────┤

│ Stream Identifier (32 bits) │

├─────────────────────────────────────┤

│ Frame Payload (variable) │

└─────────────────────────────────────┘

Kompresja nagłówków HPACK

ScenariuszNagłówki HTTP/1.1Nagłówki HTTP/2
Pierwsze żądanie~800 bytes~800 bytes
Kolejne żądania~800 bytes każde~20-50 bytes (indeksowane)

Priorytetyzacja strumieni

Priority Tree:

Root (connection)

├── CSS (weight: 256, high priority)

├── JavaScript (weight: 220)

└── Images (weight: 110, lower priority)

Wymagania serwera

SerwerObsługa HTTP/2
nginx1.9.5+
Apache2.4.17+ (mod_http2)
Node.js8.4+ (natywna)
IISWindows 10/Server 2016+

Korzyści wydajnościowe

Dobre praktyki

1. Włącz TLS: HTTP/2 praktycznie wymaga HTTPS (przeglądarki wymuszają ten warunek)

2. Ogranicz dzielenie domen: Wiele domen może teraz pogarszać wydajność

3. Zrezygnuj ze scalania plików: Multipleksowanie zmniejsza potrzebę tworzenia pakietów

4. Ostrożnie używaj push serwera: Wysyłaj z wyprzedzeniem tylko krytyczne zasoby

5. Monitoruj wydajność: Sprawdzaj, czy HTTP/2 poprawia konkretny przypadek użycia

HTTP/2 zapewnia większości witryn znaczną poprawę wydajności dzięki efektywniejszemu wykorzystaniu połączeń sieciowych.

Wykorzystaj tę wiedzę w praktyce

Użyj API DomScan, aby sprawdzić dostępność domen, ich kondycję i więcej.