INTEGRITY Dokumentace

Řešení problémů s protokolem

Tento návod popisuje běžné problémy s HTTP/2 a HTTP/3, včetně nekompatibility origin serveru, chyb multiplexování a chyb prohlížeče, a uvádí postup jejich diagnostiky a řešení.

H2 to Origin - Nekompatibilita originu

H2 Multiplexing - Nekompatibilita/problémy s originem

Obecné chyby prohlížeče

Mezi časté chyby prohlížeče patří:

Tyto chyby nemusí nutně znamenat problém na úrovni protokolu. Postupujte podle následujících kroků:

  1. Zkuste problém reprodukovat pomocí HTTP/1.1.
  2. Pokud problém přetrvává i v HTTP/1.1, vyřešte nejprve základní chybu a až poté testujte HTTP/2 nebo HTTP/3.
  3. Pokud problém nepřetrvává, analyzujte netlogy kvůli problémům specifickým pro HTTP/2 nebo HTTP/3.

Další informace najdete v tématu Hlavička požadavku URL v Chromiu ↗.

Chrome se zasekává nebo selhává pouze u HTTP/3

Pokud se problém projevuje pouze v Chromu přes HTTP/3 a po vypnutí HTTP/3 zmizí, může souviset spíše se zpracováním QUIC na straně prohlížeče než s vaším origin serverem. Jde o known problém prohlížeče Chrome (crbug.com/41161335 ↗) pak příčinou není implementace QUIC od Cloudflare.

Mezi příznaky mohou patřit:

Jak problém izolovat

  1. Dočasně vypněte HTTP/3 pro danou zónu.
  2. Otestujte stejný požadavek znovu přes HTTP/2.
  3. Pokud problém přes HTTP/2 zmizí, zachyťte NetLog pro Chrome a porovnejte chování.

Otestujte ihned: V prohlížeči Chrome přejděte na chrome://flags, vyhledejte "QUIC" a nastavte ho na Disabled, poté restartujte Chrome.

Řešení

Pokud je problém omezen na konkrétní hostname, můžete použít cílenější řešení: vytvořte Response Header Modification Transform Rule, které odstraní Alt-Svc pro dotčený název hostitele.

  1. V Cloudflare dashboardu přejděte do sekce Rules Přehled stránce.
  2. Vyberte Vytvořit pravidlo > Response Header Transform Rule.
  3. Nastavte odpovídající výraz na svůj hostname: (http.host eq "example.com").
  4. V části Úprava hlavičky odpovědi, vyberte Odebrat a zadejte Alt-Svc jako název hlavičky.

Tím se pro daný hostname vynutí použití HTTP/2 v Chromu, aniž by se HTTP/3 vypnulo globálně. Proxovaná doména (hostname) však může HTTP/3 inzerovat i prostřednictvím generovaných záznamů HTTPS, takže nejspolehlivějším způsobem, jak si při řešení potíží vynutit HTTP/2, je vypnout HTTP/3 pro celou zónu.

Po změně Alt-Svc, nezapomeňte, že prohlížeče mohou nabízenou alternativní službu uložit do cache až na 24 hodin.