Skúmanie ERR_INVALID_CHUNKED_ENCODING cez proxy
Nájdite, kde sa odpoveď stáva neúplnou alebo poškodenou, porovnaním jej rámcovania, bodu zastavenia a logov proxy trasy.
ERR_INVALID_CHUNKED_ENCODING znamená, že odpoveď nebolo možné dekódovať ako úplnú chunked správu. To, že časť obsahu dorazila úspešne, nedokazuje, že zvyšok odpovede bol platný.
- Zachovajte hlavičky odpovede a prvú chybu dekodéra. Určte, ktorý komponent ju nahlásil a či bola správa deklarovaná ako chunked.
- Nájdite bod zastavenia. Kódovanie chunked v HTTP/1.1 vyžaduje veľkosti, príslušné údaje, oddeľovače a záverečný blok, podľa potreby aj trailers. Skoré zatvorenie spojenia a poškodená veľkosť sú rôzne stopy.
- Porovnajte tú istú kontrolovanú požiadavku na zamýšľanej trase. Spárujte požiadavku s logmi proxy a nadradeného servera. Hľadajte zatvorenie zo strany nadradeného servera, transformáciu sprostredkovateľa alebo zrušenie aplikáciou v tom bode.
Neusudzujte rámcovanie HTTP z veľkosti TCP buffera. Jedno čítanie socketu môže obsahovať polovicu bloku alebo viac blokov; knižnica potom môže sprístupniť dekódovaný obsah v rôznych bufferoch. JSON záznam má ešte inú hranicu. Proxy môže odpoveď pre-rámcovať bez zachovania pôvodných hraníc paketov.
Ak dôkazy ukazujú na starú implementáciu Squid, ponechajte číslo jej vydania pri tomto závere. Rady k záplatám pre Squid 2.x neopisujú každé aktuálne vydanie. Počas porovnávania zachovajte bežné dekódovanie a overovanie certifikátov: potlačenie chyby môže spôsobiť, že neúplný súbor vyzerá ako úspešné stiahnutie.