ERR_INVALID_CHUNKED_ENCODING oznacza, że odpowiedzi nie udało się zdekodować jako kompletnej wiadomości chunked. To, że część treści dotarła poprawnie, nie dowodzi, że reszta odpowiedzi była prawidłowa.

  1. Zachowaj nagłówki odpowiedzi i pierwszy błąd dekodera. Ustal, który komponent go zgłosił i czy wiadomość została zadeklarowana jako chunked.
  2. Znajdź punkt zatrzymania. Kodowanie chunked HTTP/1.1 wymaga rozmiarów, odpowiednich danych, separatorów i bloku końcowego, a w razie potrzeby także trailers. Wczesne zamknięcie połączenia i zniekształcony rozmiar to różne tropy.
  3. Porównaj to samo kontrolowane żądanie na docelowej trasie. Zestaw żądanie z logami proxy i serwera nadrzędnego. Szukaj zamknięcia po stronie nadrzędnej, przekształcenia przez pośrednika lub anulowania przez aplikację w tym punkcie.

Nie wnioskuj o ramowaniu HTTP z rozmiaru bufora TCP. Pojedynczy odczyt gniazda może zawierać połowę bloku lub kilka bloków; biblioteka może potem udostępnić zdekodowaną treść w różnych buforach. Rekord JSON ma jeszcze inną granicę. Proxy może przeformatować odpowiedź bez zachowania pierwotnych granic pakietów.

Jeśli dowody wskazują na starą implementację Squid, zachowaj jej numer wydania wraz z tym wnioskiem. Wskazówki dotyczące poprawek dla Squid 2.x nie opisują każdego obecnego wydania. Podczas porównania zachowaj normalne dekodowanie i walidację certyfikatów: tłumienie błędu może sprawić, że niekompletny plik będzie wyglądał jak udane pobranie.

Powiązane artykuły