ERR_INVALID_CHUNKED_ENCODING σημαίνει ότι η απόκριση δεν μπόρεσε να αποκωδικοποιηθεί ως πλήρες chunked μήνυμα. Το ότι φτάνει επιτυχώς μέρος του περιεχομένου δεν αποδεικνύει ότι το υπόλοιπο της απόκρισης ήταν έγκυρο.

  1. Διατηρήστε τις κεφαλίδες της απόκρισης και το πρώτο σφάλμα του αποκωδικοποιητή. Καθορίστε ποιο στοιχείο το ανέφερε και αν το μήνυμα είχε δηλωθεί ως chunked.
  2. Εντοπίστε το σημείο διακοπής. Η κωδικοποίηση HTTP/1.1 chunked απαιτεί μεγέθη, τα αντίστοιχα δεδομένα, διαχωριστικά και ένα τελικό chunk, με trailers όπου ισχύει. Το πρόωρο κλείσιμο της σύνδεσης και ένα παραμορφωμένο μέγεθος είναι διαφορετικά ίχνη.
  3. Συγκρίνετε το ίδιο ελεγχόμενο αίτημα στην προβλεπόμενη διαδρομή. Αντιστοιχίστε το αίτημα με τα αρχεία καταγραφής του διαμεσολαβητή και του upstream. Αναζητήστε κλείσιμο από το upstream, μετασχηματισμό ενδιάμεσου ή ακύρωση από την εφαρμογή σε εκείνο το σημείο.

Μην συμπεραίνετε την πλαισίωση HTTP από το μέγεθος ενός buffer TCP. Μια ανάγνωση socket μπορεί να περιέχει μισό chunk ή πολλά chunks· μια βιβλιοθήκη μπορεί τότε να εκθέσει το αποκωδικοποιημένο περιεχόμενο σε διαφορετικούς buffers. Μια εγγραφή JSON έχει άλλο ακόμη όριο. Ένας διαμεσολαβητής μπορεί να επαναπλαισιώσει μια απόκριση χωρίς να διατηρήσει τα αρχικά όρια των πακέτων.

Αν τα στοιχεία δείχνουν παλιά υλοποίηση Squid, κρατήστε τον αριθμό έκδοσής της μαζί με αυτό το συμπέρασμα. Οι συμβουλές επιδιορθώσεων για το Squid 2.x δεν περιγράφουν κάθε τρέχουσα έκδοση. Διατηρήστε την κανονική αποκωδικοποίηση και την επικύρωση πιστοποιητικών κατά τη σύγκριση: η καταστολή του σφάλματος μπορεί να αφήσει ένα ελλιπές αρχείο να φαίνεται ως επιτυχής λήψη.

Σχετικά άρθρα