Разследване на ERR_INVALID_CHUNKED_ENCODING през прокси
Открийте къде отговорът става непълен или повреден, като сравните рамкирането му, точката на спиране и журналите на прокси маршрута.
ERR_INVALID_CHUNKED_ENCODING означава, че отговорът не може да бъде декодиран като пълно chunked съобщение. Успешното пристигане на част от съдържанието не доказва, че останалата част от отговора е била валидна.
- Запазете заглавките на отговора и първата грешка на декодера. Установете кой компонент я е съобщил и дали съобщението е било обявено за chunked.
- Открийте точката на спиране. Кодирането HTTP/1.1 chunked изисква размери, съответните данни, разделители и завършващ chunk, с trailers където е приложимо. Ранно затваряне на връзката и повреден размер са различни следи.
- Сравнете същата контролирана заявка по предвидения маршрут. Съпоставете заявката с журналите на проксито и upstream. Търсете затваряне от upstream, междинно преобразуване или отмяна от приложението в тази точка.
Не правете изводи за рамкирането на HTTP от размера на TCP буфер. Едно четене на socket може да съдържа половин chunk или няколко chunk-а; библиотеката може след това да покаже декодираното съдържание в различни буфери. JSON записът има още една граница. Проксито може да прерамкира отговор, без да запази оригиналните граници на пакетите.
Ако доказателствата сочат към стара реализация на Squid, запазете номера на изданието ѝ заедно с това заключение. Съветите за пачове на Squid 2.x не описват всяко текущо издание. Запазете нормалното декодиране и проверката на сертификата по време на сравнението: потискането на грешката може да остави непълен файл да изглежда като успешно изтегляне.