بررسی ERR_INVALID_CHUNKED_ENCODING از طریق یک پروکسی
مشخص کنید پاسخ کجا ناقص یا بدشکل میشود با مقایسهٔ قاببندی، نقطهٔ توقف و گزارشهای مسیر پروکسی.
ERR_INVALID_CHUNKED_ENCODING یعنی پاسخ نتوانست بهعنوان یک پیام chunked کامل رمزگشایی شود. رسیدن موفق بخشی از محتوا ثابت نمیکند که بقیهٔ پاسخ معتبر بوده است.
- سرآیندهای پاسخ و نخستین خطای رمزگشا را نگه دارید. روشن کنید کدام مؤلفه آن را گزارش کرده و آیا پیام chunked اعلام شده بود.
- نقطهٔ توقف را پیدا کنید. کدگذاری HTTP/1.1 chunked به اندازهها، دادههای متناظر، جداکنندهها و یک chunk پایانی نیاز دارد، در صورت کاربرد با trailers. بستن زودهنگام اتصال و اندازهٔ بدشکل دو سرنخ متفاوتاند.
- همان درخواست کنترلشده را روی مسیر موردنظر مقایسه کنید. درخواست را با گزارشهای پروکسی و بالادست تطبیق دهید. در آن نقطه بستن بالادست، تبدیل واسطه یا لغو توسط برنامه را جستوجو کنید.
قاببندی HTTP را از اندازهٔ بافر TCP نتیجه نگیرید. یک خواندن socket ممکن است نیم chunk یا چند chunk داشته باشد؛ سپس یک کتابخانه میتواند محتوای رمزگشاییشده را در بافرهای متفاوت نشان دهد. یک رکورد JSON مرز دیگری دارد. پروکسی میتواند پاسخی را بدون حفظ مرزهای اصلی بستهها دوباره قاببندی کند.
اگر شواهد به پیادهسازی قدیمی Squid اشاره میکند، شمارهٔ انتشار آن را همراه با این نتیجه نگه دارید. توصیههای وصلهٔ Squid 2.x همهٔ انتشارهای کنونی را توصیف نمیکند. در هنگام مقایسه رمزگشایی معمول و اعتبارسنجی گواهی را حفظ کنید: سرکوب خطا میتواند فایلی ناقص را شبیه دانلود موفق جلوه دهد.