Enquêter sur ERR_INVALID_CHUNKED_ENCODING à travers un proxy
Localisez où une réponse devient incomplète ou mal formée en comparant son cadrage, son point d'arrêt et les journaux de la route du proxy.
ERR_INVALID_CHUNKED_ENCODING signifie que la réponse n'a pas pu être décodée comme un message chunked complet. Le fait qu'une partie du contenu arrive correctement ne prouve pas que le reste de la réponse était valide.
- Conservez les en-têtes de la réponse et la première erreur du décodeur. Déterminez quel composant l'a signalée et si le message était déclaré chunked.
- Localisez le point d'arrêt. L'encodage HTTP/1.1 chunked exige des tailles, les données correspondantes, des délimiteurs et un chunk final, avec des trailers le cas échéant. Une fermeture précoce de la connexion et une taille mal formée sont des pistes différentes.
- Comparez la même requête contrôlée sur la route prévue. Faites correspondre la requête avec les journaux du proxy et de l'upstream. Recherchez une fermeture en amont, une transformation intermédiaire ou une annulation par l'application à ce point.
Ne déduisez pas le cadrage HTTP de la taille d'un tampon TCP. Une seule lecture de socket peut contenir un demi-chunk ou plusieurs chunks ; une bibliothèque peut ensuite exposer le contenu décodé dans différents tampons. Un enregistrement JSON a encore une autre frontière. Un proxy peut recadrer une réponse sans préserver les frontières d'origine des paquets.
Si les preuves pointent vers une ancienne implémentation de Squid, conservez son numéro de version avec cette conclusion. Les conseils de correctifs pour Squid 2.x ne décrivent pas chaque version actuelle. Préservez le décodage normal et la validation des certificats pendant la comparaison : masquer l'erreur peut faire passer un fichier incomplet pour un téléchargement réussi.