DNS RobotDNS Propagation Checker
GłównaDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Checker propagacji DNS nowej generacji

Polityka PrywatnościRegulaminO nasBlogKontakt

Narzędzia DNS

Wyszukiwanie DNSTest Szybkości DNSDomena na IPWyszukiwanie NSWyszukiwanie MXZobacz wszystko

Narzędzia E-mail

Sprawdzanie Rekordu SPFSprawdzanie DMARCSprawdzanie DKIMTest SMTPAnaliza Nagłówków E-mailZobacz wszystko

Narzędzia Stron WWW

Wyszukiwanie WHOISSprawdzanie hostinguDostępność DomenyWyszukiwarka SubdomenWykrywanie CMSZobacz wszystko

Narzędzia Sieciowe

Narzędzie PingTracerouteSprawdzanie PortówSprawdzanie Nagłówków HTTPSprawdzanie Certyfikatu SSLZobacz wszystko

Narzędzia IP

Wyszukiwanie IPJaki Jest Mój IPSprawdzanie Czarnej Listy IPIP na HostnameWyszukiwanie ASNZobacz wszystko

Narzędzia Pomocnicze

Skaner QR CodeGenerator QR CodeUPI QR Code GeneratorWiFi QR Code GeneratorTłumacz Kodu Morse'aZobacz wszystko
© 2026 DNS Robot. Opracowane przez: ❤ Shaik Brothers
Wszystkie systemy działają
Made with
Strona główna/Blog/ERR_HTTP2_PROTOCOL_ERROR: co oznacza i jak naprawić

ERR_HTTP2_PROTOCOL_ERROR: co oznacza i jak naprawić

Shaik Vahid30 wrz 20269 min czytania
Strona błędu Chrome z ERR_HTTP2_PROTOCOL_ERROR obok kroków, które naprawiają błędy protokołu HTTP/2
Strona błędu Chrome z ERR_HTTP2_PROTOCOL_ERROR obok kroków, które naprawiają błędy protokołu HTTP/2

Kluczowy wniosek

ERR_HTTP2_PROTOCOL_ERROR (błąd Chromium -337) oznacza, że serwer albo coś między Tobą a serwerem wysłało odpowiedź HTTP/2, która łamie zasady protokołu, więc Chrome ją odrzucił. Odwiedzającym zwykle pomaga odświeżenie strony, okno incognito, wyczyszczenie pamięci podręcznej strony albo wstrzymanie skanowania HTTPS w antywirusie, bo częstą przyczyną jest zniekształcona lub zapisana w pamięci podręcznej odpowiedź. Po stronie właściciela strony typowe przyczyny to odpowiedź ucięta w połowie strumienia (często przez proxy z pełnym dyskiem lub katalogiem tymczasowym bez prawa zapisu), Content-Length niezgodny z treścią odpowiedzi albo nagłówki zakazane w HTTP/2. Odtwórz błąd poleceniem curl --http2 -v.

Advertisement

Czym jest błąd ERR_HTTP2_PROTOCOL_ERROR?

ERR_HTTP2_PROTOCOL_ERROR to błąd Chrome i Edge, który oznacza, że przeglądarka otrzymała odpowiedź HTTP/2 łamiącą zasady protokołu. W Chromium to błąd sieciowy -337: „wystąpił błąd protokołu HTTP/2” (there is an HTTP/2 protocol error). Chrome nie ma dla niego osobnej strony błędu, więc widzisz ogólną: „Nie można uzyskać dostępu do tej witryny. Strona internetowa pod adresem … może być tymczasowo niedostępna lub została na stałe przeniesiona pod nowy adres”, a pod spodem ERR_HTTP2_PROTOCOL_ERROR.

HTTP/2 to szybsza wersja HTTP, z której korzysta dziś większość stron HTTPS. Jest bardziej rygorystyczna niż HTTP/1.1: odpowiedzi są dzielone na binarne ramki, nagłówki podlegają precyzyjnym zasadom, a zadeklarowany rozmiar odpowiedzi musi zgadzać się z tym, co faktycznie dociera. Gdy Chrome widzi odpowiedź łamiącą te zasady, na przykład urwaną w połowie strumienia albo z zakazanym nagłówkiem, traktuje całą odpowiedź jako zniekształconą i ją odrzuca.

Programiści często widzą ten błąd w konsoli DevTools jako net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK). To połączenie jest mocną wskazówką: serwer odpowiedział kodem 200, ale treść odpowiedzi nigdy nie dotarła w całości.

Uwaga

Firefox i Safari również obsługują HTTP/2, ale inaczej zgłaszają uszkodzone odpowiedzi, więc strona może nie działać w Chrome, a w innych przeglądarkach pozornie się ładować (czasem niekompletnie). Nie oznacza to, że Chrome się myli: zwykle po prostu najsurowiej odrzuca zniekształcone odpowiedzi.

Co HTTP/2 uznaje za zniekształconą odpowiedź

Standard HTTP/2 (RFC 9113) wymienia błędy, które sprawiają, że odpowiedź jest zniekształcona, a strumień zresetowany przed zakończeniem również kończy się niepowodzeniem. Oto problemy stojące za większością błędów spotykanych w praktyce:

ZasadaCo ją łamie
Content-Length musi być równy rozmiarowi treściSerwer lub wtyczka deklaruje jeden rozmiar, a wysyła inny, na przykład gdy dane wyjściowe są kompresowane już po ustawieniu długości
Odpowiedź musi zakończyć się poprawnieSerwer, proxy lub aplikacja przestaje wysyłać dane w połowie
Brak nagłówków specyficznych dla połączeniaConnection, Keep-Alive, Proxy-Connection, Transfer-Encoding lub Upgrade wysłane w odpowiedzi HTTP/2
Nazwy pól muszą być pisane małymi literamiNazwy nagłówków z wielkimi literami przekazane bez zmian do HTTP/2
Prawidłowe wartości nagłówkówZnaki nowej linii lub inne zakazane znaki w wartości nagłówka
Prawidłowa linia :statusBrakujący lub nieczytelny kod statusu

Advertisement

Co powoduje błąd ERR_HTTP2_PROTOCOL_ERROR?

Większość przypadków ma źródło po stronie serwera, ale kilka rzeczy na Twoim komputerze również może uszkodzić odpowiedź w drodze do przeglądarki:

  • Po stronie serwera: odpowiedzi ucięte w połowie strumienia (proxy, któremu zabrakło miejsca na dysku albo nie może zapisać plików tymczasowych, aplikacja, która pada podczas strumieniowania, przekroczony limit czasu), błędne wartości Content-Length, zakazane lub nieprawidłowe nagłówki oraz błędna obsługa HTTP/2 w starszej konfiguracji serwera lub CDN.

  • Po Twojej stronie: antywirus lub zapora, które sprawdzają HTTPS i przepisują odpowiedzi, rozszerzenia przeglądarki modyfikujące żądania lub odpowiedzi, uszkodzona kopia strony w pamięci podręcznej, a czasem przestarzała wersja Chrome.

Rozwiązanie 1: Wymuś pełne odświeżenie i spróbuj trybu incognito

Naciśnij Ctrl + Shift + R (Mac: Cmd + Shift + R), aby odświeżyć stronę z pominięciem pamięci podręcznej. Odpowiedź, która raz została ucięta, przy następnej próbie może dotrzeć bez problemu.

Następnie otwórz stronę w oknie incognito (Ctrl + Shift + N, Mac Cmd + Shift + N). Tryb incognito nie ma plików cookie ani pamięci podręcznej z Twojego zwykłego profilu, a rozszerzenia są w nim domyślnie wyłączone. Jeśli strona się w nim ładuje, Rozwiązanie 2 lub Rozwiązanie 3 naprawi problem w zwykłym oknie.

Advertisement

Rozwiązanie 2: Wyczyść pamięć podręczną i pliki cookie tej strony

Uszkodzona kopia w pamięci podręcznej lub rozdęty plik cookie mogą wielokrotnie wywoływać ten błąd na jednej stronie. Wyczyść dane tylko tej strony: kliknij ikonę po lewej stronie paska adresu → Pliki cookie i dane witryn (lub Ustawienia witryny) → usuń dane, a potem odśwież. Aby wyczyścić więcej, naciśnij Ctrl + Shift + Delete i usuń Obrazy i pliki zapisane w pamięci podręcznej z ostatnich kilku dni.

Rozwiązanie 3: Wstrzymaj skanowanie HTTPS w antywirusie i rozszerzenia

Oprogramowanie zabezpieczające, które odszyfrowuje i sprawdza HTTPS, stoi pośrodku każdego połączenia HTTP/2. Jeśli jego obsługa HTTP/2 jest błędna lub przestarzała, może przekazywać odpowiedzi, które Chrome uznaje za zniekształcone. Wyłącz tylko funkcję skanowania HTTPS (zwykle nazywa się ona skanowanie HTTPS, Web Shield (osłona WWW), filtrowanie protokołu SSL/TLS albo skanowanie połączeń szyfrowanych) i odśwież stronę. Jeśli to pomoże, zaktualizuj antywirus i dodaj wyjątek dla tej strony.

Następnie wyłącz wszystkie rozszerzenia w chrome://extensions, odśwież stronę, a potem włączaj je z powrotem po jednym. Zwykle podejrzanymi są blokery reklam, narzędzia do ochrony prywatności i wszystko, co edytuje nagłówki.

Ostrzeżenie

Po zakończeniu testów włącz ochronę z powrotem. Wyłączanie skanowania HTTPS wszędzie po to, by naprawić jedną stronę, to zła wymiana; zamiast tego dodaj tę stronę do wyjątków.

Advertisement

Rozwiązanie 4: Zaktualizuj Chrome i sprawdź inne przeglądarki

Otwórz chrome://settings/help, aby zainstalować oczekującą aktualizację, a potem uruchom przeglądarkę ponownie. Następnie otwórz tę samą stronę w Firefoksie lub Safari. Jeśli nie działa nigdzie, strona jest uszkodzona i naprawić ją może tylko właściciel. Jeśli nie działa tylko w Chrome lub Edge, winna jest zwykle i tak strona, bo Chrome najsurowiej odrzuca zniekształcone HTTP/2, ale warto powtórzyć Rozwiązania 2 i 3.

Rozwiązanie 5: Przetestuj stronę bez HTTP/2

Chrome można uruchomić z wyłączonym HTTP/2, co daje pewność, czy to HTTP/2 jest problemem. Najpierw zamknij wszystkie okna Chrome, a potem uruchom przeglądarkę z terminala:

bash
# Windows (wiersz polecenia)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-http2

# macOS (Terminal)
open -a "Google Chrome" --args --disable-http2

Wskazówka

Jeśli to Twoja strona i potrzebujesz szybkiego obejścia na czas diagnozy, możesz tymczasowo wyłączyć HTTP/2 na serwerze (w nginx usuń http2 z linii listen 443 ssl albo ustaw http2 off;). Przeglądarki przejdą wtedy na HTTP/1.1, które jest bardziej tolerancyjne. Traktuj to jako krok tymczasowy, a nie rozwiązanie.

Jeśli w tym oknie strona się ładuje, odpowiedzi HTTP/2 tej strony są zniekształcone i musi je naprawić właściciel. Potem zamknij Chrome i otwórz go normalnie. Flaga działa tylko przy tym jednym uruchomieniu.

Advertisement

Dla właścicieli stron: jak naprawić błędy protokołu HTTP/2

Jeśli błąd zgłaszają odwiedzający z różnych sieci i przeglądarek, problem leży w Twojej infrastrukturze. Te trzy kontrole wykrywają prawie wszystkie przypadki.

1. Odtwórz błąd za pomocą curl

bash
# HTTP/2: obserwuj koniec wyniku
curl -sv --http2 https://example.com/broken-page -o /dev/null
# Przerwany strumień kończy się czymś w rodzaju:
# HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
# (curl 8.19+: HTTP/2 stream 1 reset by server (error 0x1 PROTOCOL_ERROR))

# Ten sam URL przez HTTP/1.1 dla porównania
curl -sv --http1.1 https://example.com/broken-page -o /dev/null

Wskazówka

W Chrome DevTools (F12) → Network (Sieć) nieudane żądanie może pokazać, ile danych dotarło, zanim się urwało. Porównanie tego z rozmiarem zadeklarowanym w nagłówku content-length szybko pokaże, czy masz do czynienia z uciętą odpowiedzią.

Jeśli HTTP/1.1 działa, a HTTP/2 nie, błąd jest potwierdzony. Porównaj nagłówki odpowiedzi w obu przypadkach i zanotuj, ile bajtów dociera, zanim strumień się urwie. Narzędzie HTTP Headers pokazuje też nagłówki, które Twoja strona wysyła, widziane spoza Twojej sieci.

2. Sprawdź, czy odpowiedzi nie są ucinane w połowie strumienia

Najczęstszą przyczyną po stronie serwera jest odpowiedź, która się zaczyna (status 200, wysłane nagłówki), a potem kończy przedwcześnie. nginx buforuje większe odpowiedzi z Twojej aplikacji w plikach tymczasowych, a jeśli dysk jest pełny albo nginx nie może zapisywać w swoim katalogu tymczasowym, odpowiedź urywa się, a przeglądarka zgłasza błąd protokołu. Sprawdź:

bash
df -h                                   # czy któryś dysk jest pełny?
sudo grep -E "No space left|Permission denied" /var/log/nginx/error.log | tail
ls -ld /var/lib/nginx/proxy /var/lib/nginx/fastcgi   # katalogi tymczasowe w Debian/Ubuntu; właściciel musi zgadzać się z użytkownikiem nginx

Sprawdź też samą aplikację: proces PHP lub Node, który pada, przekracza limit czasu albo limit pamięci podczas strumieniowania dużej strony lub pliku do pobrania, daje ten sam efekt. Logi aplikacji z okolic momentu wystąpienia błędu zwykle to pokazują.

3. Napraw Content-Length i zakazane nagłówki

  • Content-Length: pozwól serwerowi go obliczyć. Nie ustawiaj go ręcznie w kodzie aplikacji, jeśli wtyczka, middleware lub serwer WWW również kompresuje lub modyfikuje dane wyjściowe, bo wtedy zadeklarowana długość nie zgadza się już z wysłanymi bajtami. Na stronach WordPress dzieje się tak na przykład wtedy, gdy długość jest ustawiana w kodzie PHP, a wtyczka lub ustawienie PHP dodatkowo kompresuje dane wyjściowe.

  • Nagłówki specyficzne dla połączenia: usuń kod, który ustawia w odpowiedziach Connection, Keep-Alive, Transfer-Encoding lub Upgrade. HTTP/2 ich zakazuje i choć nginx usuwa większość z nich za Ciebie, niektóre serwery aplikacji i proxy tego nie robią.

  • Wartości nagłówków: upewnij się, że żaden nagłówek nie zawiera znaku nowej linii ani znaku sterującego. Często bierze się to z danych od użytkownika umieszczonych w nagłówku, na przykład nazwy pliku w Content-Disposition.

  • CDN przed serwerem: jeśli korzystasz z Cloudflare lub innego CDN, przetestuj serwer źródłowy bezpośrednio (za pomocą curl --resolve lub wpisu w pliku hosts), aby ustalić, czy błąd pochodzi z serwera źródłowego, czy z CDN.

Uwaga

Za CDN przeglądarka rozmawia z CDN przez HTTP/2, a CDN może łączyć się z Twoim serwerem źródłowym przez HTTP/1.1. Serwer źródłowy, który wysyła błędny Content-Length lub przedwcześnie zamyka połączenie, i tak pojawi się w przeglądarce jako błąd HTTP/2, bo CDN może przekazać tylko to, co otrzymał.

ERR_HTTP2_PROTOCOL_ERROR a podobne błędy

BłądKodCo się stało
ERR_HTTP2_PROTOCOL_ERROR-337Odpowiedź HTTP/2 złamała zasady protokołu
ERR_QUIC_PROTOCOL_ERROR-356Ten sam rodzaj awarii, ale w HTTP/3 (QUIC)
ERR_SSL_PROTOCOL_ERROR-107Uzgadnianie HTTPS (TLS) nie powiodło się, zanim zaczęło się HTTP/2
ERR_CONNECTION_CLOSED-100Połączenie zostało zamknięte, zanim dotarła strona
ERR_EMPTY_RESPONSE-324Serwer nie wysłał w ogóle niczego

Szczegółowe poradniki: ERR_QUIC_PROTOCOL_ERROR, ERR_SSL_PROTOCOL_ERROR, ERR_CONNECTION_CLOSED i ERR_EMPTY_RESPONSE. Aby sprawdzić certyfikat i konfigurację HTTPS strony z zewnątrz, użyj SSL Checker.

Zobacz nagłówki, które Twoja strona naprawdę wysyła

HTTP Headers Checker od DNS Robot pobiera dowolny adres URL z naszych serwerów i wyświetla kod statusu oraz każdy nagłówek odpowiedzi, dzięki czemu łatwo wychwycisz zakazane lub zniekształcone nagłówki.

Wypróbuj HTTP Headers Checker

Advertisement

Często zadawane pytania

Oznacza, że Chrome otrzymał odpowiedź HTTP/2, która złamała zasady protokołu, na przykład skończyła się przedwcześnie, deklarowała błędny rozmiar albo zawierała zakazane nagłówki, więc ją odrzucił. W Chromium to błąd sieciowy -337.

Powiązane narzędzia

HTTP Headers CheckSSL Certificate CheckPort Checker

Powiązane artykuły

ERR_QUIC_PROTOCOL_ERROR: Co oznacza i jak to naprawićERR_SSL_PROTOCOL_ERROR: Jak naprawić (Chrome, Edge, wszystkie przeglądarki)ERR_CONNECTION_CLOSED: co oznacza i jak naprawić

Spis treści

  • Czym jest błąd ERR_HTTP2_PROTOCOL_ERROR?
  • Co HTTP/2 uznaje za zniekształconą odpowiedź
  • Co powoduje błąd ERR_HTTP2_PROTOCOL_ERROR?
  • Rozwiązanie 1: Wymuś pełne odświeżenie i spróbuj trybu incognito
  • Rozwiązanie 2: Wyczyść pamięć podręczną i pliki cookie tej strony
  • Rozwiązanie 3: Wstrzymaj skanowanie HTTPS w antywirusie i rozszerzenia
  • Rozwiązanie 4: Zaktualizuj Chrome i sprawdź inne przeglądarki
  • Rozwiązanie 5: Przetestuj stronę bez HTTP/2
  • Dla właścicieli stron: jak naprawić błędy protokołu HTTP/2
  • 1. Odtwórz błąd za pomocą curl
  • 2. Sprawdź, czy odpowiedzi nie są ucinane w połowie strumienia
  • 3. Napraw Content-Length i zakazane nagłówki
  • ERR_HTTP2_PROTOCOL_ERROR a podobne błędy
  • Często zadawane pytania