HTTP/3 to najnowsza wersja protokołu Hypertext Transfer Protocol, wcześniej określanego jako „HTTP over QUIC” i jest jednocześnie następcą protokołu HTTP/2. Sam QUIC był pierwotnie wynikiem pracy Google mającym na celu ulepszenia HTTP/2. Organizacja IETF podjęła się standaryzacji protokołu, co m.in. miało polegać na podziale QUIC na protokół transportowy (QUIC) i protokół aplikacji (HTTP/3).
QUIC i HTTP/3 informacje podstawowe
QUIC to szybkie połączenia internetowe UDP. Jest to stosunkowo nowy i wciąż rozwijany protokół przenoszenia danych, który ma na celu znalezienie kompromisu między powolnym i niezawodnym (TCP) a szybkim i nieprzewidywalnym (UDP). Pierwotnie trzecia wersja standardu HTTP narodziła się jako HTTP over QUIC. Był uważany za potencjalnego następnę HTTP/2, ale dopiero od stycznia 2020 roku zwany jest jako HTTP/3.
QUIC wymaga modyfikacji formatu kompresji nagłówka HTTP. To powoduje, że nie jest wstecznie kompatybilny z HTTP/2. HTTP/3, który wykorzystuje QUIC jako warstwę transportową, jest nową, ulepszoną wersją HTTP. Technologia infrastruktury internetowej (serwery internetowe, przeglądarki internetowe itp.) jest aktualizowana w celu obsługi HTTP/3 i wykorzystania szybkości HTTP/3, zmniejszonego opóźnienia, lepszej obsługi błędów pakietów i wbudowanego szyfrowania.
Zasadnicze różnice między HTTP/2 i HTTP/3
Zasadniczą różnicą między HTTP/2 a HTTP/3 jest fakt, że HTTP/3 używa QUICK, opartego na połączeniu UDP. Z kolei HTTP/2 używa połączenia TCP + TLS. O ile możemy odnotować znaczący wzrost prędkości wczytywania witryny internetowej, HTTP/3 pozostaje mechanizmem opcjonalnym, do którego działania, konieczne jest posiadanie serwera, który go obsługuje oraz przeglądarki internetowej go wspierającej.
- HTTP/2 opiera się na TCP, HTTP/3 na UDP
- HTTP/3 posiada zintegrowane szyfrowanie TLS 1/3
- HTTP/3 obsługuje tylko połączenia szyfrowane
Warto w tym miejscu zwrócić także uwagę na podobieństwa. Wspólne cechy HTTP/2 i HTTP/3:
- wykorzystują multikompleksowanie żądań i odpowiedzi co w praktyce oznacza strumieniowe przesyłanie danych z różnych zasobów,
- oba rozwiązania korzystają z przyśpieszonego wysyłania danych CSS i JavaScript,
- zawartość strony ładowana jest priorytetowo, bez oczekiwania aż zostaną zakończone kolejne zdania,
- protokół HTTP/2 i HTTP/3 używają kompresji nagłówka, przy czym HTTP/3 używa QPack.