Preiskovanje ERR_INVALID_CHUNKED_ENCODING prek posredniškega strežnika
Poiščite, kje odgovor postane nepopoln ali popačen, s primerjavo njegovega uokvirjanja, točke ustavitve in dnevnikov poti proxyja.
ERR_INVALID_CHUNKED_ENCODING pomeni, da odgovora ni bilo mogoče dekodirati kot popolno sporočilo chunked. To, da je del vsebine prispel uspešno, ne dokazuje, da je bil preostanek odgovora veljaven.
- Shranite glave odgovora in prvo napako dekoderja. Ugotovite, katera komponenta jo je prijavila in ali je bilo sporočilo razglašeno za chunked.
- Poiščite točko ustavitve. Kodiranje chunked v HTTP/1.1 zahteva velikosti, ustrezne podatke, ločila in zaključni blok, po potrebi tudi trailers. Zgodnje zaprtje povezave in popačena velikost sta različni sledi.
- Primerjajte isto nadzorovano zahtevo na predvideni poti. Zahtevo uskladite z dnevniki proxyja in nadrejenega strežnika. Iščite zaprtje na strani nadrejenega strežnika, preoblikovanje posrednika ali preklic aplikacije na tej točki.
Ne sklepajte o uokvirjanju HTTP iz velikosti medpomnilnika TCP. Eno branje vtičnice lahko vsebuje pol bloka ali več blokov; knjižnica lahko nato razkrije dekodirano vsebino v različnih medpomnilnikih. Zapis JSON ima še eno mejo. Proxy lahko odgovor znova uokviri, ne da bi ohranil prvotne meje paketov.
Če dokazi kažejo na staro izvedbo Squid, ob tej ugotovitvi ohranite številko njene izdaje. Nasveti za popravke za Squid 2.x ne opisujejo vsake trenutne izdaje. Med primerjavo ohranite običajno dekodiranje in preverjanje potrdil: zatiranje napake lahko povzroči, da je nepopolna datoteka videti kot uspešen prenos.