חקירת ERR_INVALID_CHUNKED_ENCODING דרך פרוקסי
אתרו היכן תגובה הופכת חלקית או פגומה באמצעות השוואת המסגור, נקודת העצירה ויומני מסלול הפרוקסי.
ERR_INVALID_CHUNKED_ENCODING פירושו שלא ניתן היה לפענח את התגובה כהודעת chunked שלמה. העובדה שחלק מהתוכן מגיע בהצלחה אינה מוכיחה ששאר התגובה היה תקין.
- שמרו את כותרות התגובה ואת שגיאת הפענוח הראשונה. קבעו איזה רכיב דיווח עליה והאם ההודעה הוכרזה כ-chunked.
- אתרו את נקודת העצירה. קידוד HTTP/1.1 chunked דורש גדלים, את הנתונים המתאימים, מפרידים ו-chunk מסיים, עם trailers היכן שרלוונטי. סגירת חיבור מוקדמת וגודל פגום הם רמזים שונים.
- השוו את אותה בקשה מבוקרת במסלול המיועד. התאימו את הבקשה ליומני הפרוקסי וה-upstream. חפשו סגירה בצד ה-upstream, טרנספורמציה של מתווך או ביטול מצד האפליקציה בנקודה זו.
אל תסיקו מסגור HTTP מגודל חוצץ TCP. קריאת socket אחת עשויה להכיל חצי chunk או כמה chunks; ספרייה עשויה אז לחשוף את התוכן המפוענח בחוצצים שונים. לרשומת JSON יש גבול נוסף. פרוקסי יכול למסגר מחדש תגובה בלי לשמר את גבולות החבילות המקוריים.
אם הראיות מצביעות על מימוש Squid ישן, שמרו את מספר הגרסה שלו יחד עם המסקנה הזו. עצות התיקון ל-Squid 2.x אינן מתארות כל גרסה נוכחית. שמרו על פענוח רגיל ואימות תעודות במהלך ההשוואה: דיכוי השגיאה עלול להשאיר קובץ חלקי כשהוא נראה כהורדה מוצלחת.