Wprowadzenie
Dlaczego warto poświęcić chwilę na nowe protokoły i co realnie zyskasz.
HTTP/2 i jego następca HTTP/3 stały się w ostatnich latach fundamentem szybkiego internetu. Nie chodzi tylko o modne skróty. Przy odpowiedniej konfiguracji strona ładuje się szybciej, stabilniej działa na sieci komórkowej, a użytkownicy szybciej widzą treść “above the fold”. Dodatkowy bonus? To zwykle tańszy sposób na poprawę Core Web Vitals niż przebudowa frontendu. W tym przewodniku wyjaśniam najważniejsze korzyści oraz pokazuję krok po kroku, jak włączyć obsługę nowych protokołów na popularnych serwerach.
Dlaczego przejść na nowe protokoły
Szybciej, stabilniej, lepiej dla SEO i użytkowników.
Multiplexing i priorytety w HTTP/2 eliminują “kolejkowanie” pojedynczych żądań. Wiele plików pobieranych jest równolegle przez jedno połączenie, co skraca czas potrzebny na komplet zasobów.
Kompresja nagłówków (HPACK w HTTP/2, QPACK w HTTP/3) zmniejsza narzut przy dużej liczbie małych plików – typowe dla nowoczesnych aplikacji webowych.
HTTP/3 działa na QUIC (UDP), lepiej radząc sobie z utratą pakietów i zmianą zasięgu, co jest kluczowe na 4G/5G i podczas podróży.
TLS 1.3 i 0-RTT (w HTTP/3) skracają handshake. Przy powtarzanych wizytach pierwsze bajty odpowiedzi mogą polecieć szybciej, o ile request jest idempotentny.
Poprawa CWV (LCP, FID/INP, TTFB) przekłada się na wyższe pozycje i konwersję. Dla stron bogatych w grafiki, czcionki i skrypty, przejście na HTTP/2/3 bywa najłatwiejszym “winem”.
Uwaga praktyczna: HTTP/2 Server Push jest w przeglądarkach de facto wycofany (m.in. Chrome), więc nie planuj strategii wokół push. Lepszym kierunkiem jest 103 Early Hints i dobre preloadingi.
Wymagania wstępne i kompatybilność
Zanim zaczniesz: TLS, ALPN, firewall i wersje oprogramowania.
- Certyfikat TLS (np. Let’s Encrypt) i wsparcie ALPN w stosie TLS. Dla HTTP/2 wystarczy TLS 1.2+ z ALPN (OpenSSL 1.0.2+), zalecane TLS 1.3.
- HTTP/3 wymaga portu 443/UDP oraz QUIC w serwerze. Upewnij się, że firewall i CDN nie blokują UDP.
- Aktualne wersje serwerów:
- Nginx: stabilne HTTP/2; HTTP/3 jest dostępne w nowszych wydaniach/gałęziach lub buildach z QUIC (sprawdź dokumentację dystrybucji).
- Apache: HTTP/2 w mod_http2; HTTP/3 dostępne w nowszych wersjach/via moduły (nghttp3+ngtcp2) – bywa eksperymentalne.
- Caddy: HTTP/3 włączone domyślnie, bardzo wygodny wybór.
- LiteSpeed/OpenLiteSpeed: szerokie wsparcie H2/H3.
- HAProxy: HTTP/3 w nowych wersjach, często wymaga dopracowanej konfiguracji.
- Reverse proxy i CDN: Cloudflare, Fastly, Akamai zdejmuje z Ciebie ciężar H3, o ile włączysz HTTP/3 w panelu i odblokujesz UDP w infrastrukturze.
Konfiguracja HTTP/2 w Nginx
Krótkie kroki: włącz http2 na porcie 443 i dopracuj TLS.
- Upewnij się, że masz Nginx z modułem http_v2 oraz OpenSSL z ALPN.
- W wirtualnym hostcie (server) dodaj obsługę HTTP/2:
listen 443 ssl http2;
server_name twojadomena.pl;
ssl_certificate /etc/letsencrypt/live/twojadomena.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/twojadomena.pl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
location / {
root /var/www/html;
try_files $uri $uri/ =404;
}
- W sekcji http dodaj rozsądne parametry TLS (preferencyjnie TLS 1.3, bez przestarzałych szyfrów).
- Zrestartuj Nginx i przetestuj:
- curl -I –http2 https://twojadomena.pl
- w Chrome/Edge sprawdź zakładkę Network i kolumnę Protocol (powinno pokazać h2).
W praktyce to zmiana jednej linijki (“http2” przy listen) plus porządek w TLS. Jeśli po włączeniu h2 widzisz regres, sprawdź priorytety zasobów i serwowanie czcionek.
Konfiguracja HTTP/2 w Apache
Włącz moduł, użyj MPM event i ustaw Protocols.
- Włącz wymagane moduły (przykład dla Debiana/Ubuntu):
- a2enmod http2 ssl headers
- upewnij się, że aktywny jest mpm_event (a2dismod mpm_prefork; a2enmod mpm_event)
W konfiguracji VirtualHost na 443 dodaj:
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/twojadomena.pl/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/twojadomena.pl/privkey.pemZrestartuj Apache i przetestuj curl/emulator przeglądarki.
Jeżeli używasz PHP-FPM, upewnij się, że KeepAlive i limity połączeń są rozsądne – HTTP/2 daje więcej zapytań per połączenie, co zmienia profil obciążenia.
HTTP/3 w praktyce: najprostsze ścieżki
Caddy lub CDN to najszybszy start z QUIC bez bólu.
- Caddy: w wersji 2+ HTTP/3 jest domyślny. Typowy Caddyfile:
twojadomena.pl {
encode gzip zstd
root * /var/www/html
file_server
}
Upewnij się, że port 443/UDP jest otwarty. Caddy sam dba o ALT-SVC i reklamuje h3.
Cloudflare: włącz HTTP/3 w panelu (Network → HTTP/3). To działa nawet, jeśli Twój origin mówi tylko HTTP/1.1 lub H2, bo Cloudflare terminuje QUIC na brzegu.
LiteSpeed/OpenLiteSpeed: włącz H3 w panelu, potwierdź UDP/443. To rozwiązanie “z pudełka” dla H3.
Nginx/Apache z H3: możliwe, ale bywa, że wymaga konkretnej wersji/kompilacji (QUIC libs). W Nginx często spotkasz konfigurację z “listen 443 quic reuseport;” oraz nagłówkiem Alt-Svc: h3=“:443”; ma=86400. Najbezpieczniej kierować się dokumentacją Twojej dystrybucji, bo status wsparcia H3 szybko ewoluuje.
Testowanie i weryfikacja
Sprawdź protokół, alt-svc i filtry sieciowe.
- curl:
- curl -I –http2 https://twojadomena.pl
- curl -I –http3 https://twojadomena.pl (wymaga curl z HTTP/3)
- Przeglądarka: DevTools → Network → Protocol (zobaczysz h2 lub h3).
- Zewnętrzne testery: HTTP/3 Check, WebPageTest, Lighthouse.
- Firewall: nmap -sU -p 443 twojadomena.pl (czy UDP jest widoczne?).
- Nagłówki: sprawdź Alt-Svc przy H3. Brak Alt-Svc często opóźnia skuteczne przejście klientów na HTTP/3.
Najczęstsze pułapki
Kilka rzeczy, które potrafią “zjeść” zyski z H2/H3.
- Zamknięty port 443/UDP lub nadgorliwe WAF-y – HTTP/3 nie będzie działał mimo poprawnej konfiguracji.
- Brak ALPN lub stare biblioteki TLS – przeglądarka nie negocjuje h2.
- Zbyt agresywne łączenie/“bundlowanie” zasobów pod H2 – kiedyś pomagało, dziś lepiej polegać na multiplexingu i cache.
- Serwer push – już nie dla przeglądarek; postaw na 103 Early Hints i poprawne preloady.
- CDN origin bez H2 – część CDN-ów przyspiesza tylko krawędź; sprawdź, czy origin również obsługuje h2, aby skrócić TTFB między CDN a Twoim serwerem.
- Nieoptymalne obrazy i brak HTTP caching – nawet najlepszy protokół nie nadrobi złych assetów. Połącz H2/H3 z kompresją, lazy-load i polityką cache.
Wydajność: czego realnie się spodziewać
Oszczędności w setkach milisekund, a czasem w sekundach na mobile.
- Dla stron z wieloma małymi plikami różnica bywa spektakularna: mniej połączeń, mniej handshake, lepsze zarządzanie priorytetami.
- H3 wygrywa na niestabilnych łączach: mniejszy wpływ utraty pakietów i roamingu.
- CPU i pamięć: może wzrosnąć wykorzystanie CPU (TLS, kompresja nagłówków), ale zwykle z nawiązką spłaca to krótszy czas renderu.
- SEO/UX: szybsze LCP i TTFB zwiększa szanse na lepsze pozycje i konwersję. Firmy często raportują spadek bounce rate po przejściu na H2/H3 bez zmiany layoutu.
Strategia wdrożenia krok po kroku
Bezpieczny plan, który można zrealizować w jeden sprint.
- Audyt: wersje serwerów, TLS/ALPN, firewall (UDP/443), rola CDN.
- Pilotaż: włącz HTTP/2 na wybranym hostcie; zrób pomiary WebPageTest/Lighthouse przed i po.
- Wdrażaj H3 tam, gdzie to najprostsze: Caddy lub CDN. Origin możesz zaktualizować później.
- Monitoring: TTFB, LCP, błędy 4xx/5xx, logi QUIC (jeśli dostępne).
- Optymalizacje: usuń zbędne bundlowanie, dodaj 103 Early Hints, popraw cache-control, włącz kompresję (gzip + zstd).
- Rollout: stopniowe zwiększanie ruchu, z możliwością szybkiego rollbacku.
- Dokumentacja: zanotuj wersje, flagi, listę portów i politykę aktualizacji TLS.
FAQ w pigułce
Krótkie odpowiedzi na częste pytania.
- Czy muszę mieć HTTPS, by działał HTTP/2? Dla przeglądarek – tak.
- Czy HTTP/3 zawsze jest szybszy? Nie zawsze, ale na sieciach mobilnych zyskuje częściej.
- Czy muszę zmieniać aplikację? Zwykle nie. To zmiana na poziomie serwera i TLS.
- Czy warto korzystać z Early Hints (103)? Tak, zwłaszcza dla krytycznych CSS/fonts.
Podsumowanie
Zacznij od HTTP/2 dziś, a HTTP/3 dołóż tam, gdzie to ma sens.
Jeżeli chcesz szybko przyspieszyć stronę bez wielkiego refactoru frontendu, włączenie HTTP/2 to najprostszy ruch. Daje korzyści natychmiast – od multiplexingu po kompresję nagłówków. HTTP/3 dołóż tam, gdzie masz dużo ruchu mobilnego lub zależy Ci na maksymalnej responsywności przy niestabilnych łączach. Najmniejszym kosztem wdrożysz H3 na Caddy lub przez CDN. Potem, w spokojnym tempie, możesz dociągnąć origin.
W praktyce najwięcej zyskasz, łącząc nowe protokoły z podstawami: lekki frontend, sensowne cache, kompresję i nowoczesny TLS. To zestaw, który dowozi wyniki i dobrze skaluje się w czasie.