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-ի կարկատանային խորհուրդները չեն նկարագրում յուրաքանչյուր ընթացիկ թողարկում։ Համեմատության ընթացքում պահպանեք նորմալ ապակոդավորումը և վկայագրի վավերացումը. սխալի ճնշումը կարող է թերի ֆայլը թողնել որպես հաջող ներբեռնում։