Indagare su ERR_INVALID_CHUNKED_ENCODING attraverso un proxy
Individuate dove una risposta diventa incompleta o malformata confrontando la sua incorniciatura, il punto di arresto e i log del percorso del proxy.
ERR_INVALID_CHUNKED_ENCODING significa che la risposta non è stata decodificabile come messaggio chunked completo. Il fatto che parte del contenuto arrivi correttamente non dimostra che il resto della risposta fosse valido.
- Conservate le intestazioni della risposta e il primo errore del decodificatore. Stabilite quale componente lo ha segnalato e se il messaggio era dichiarato chunked.
- Individuate il punto di arresto. La codifica HTTP/1.1 chunked richiede dimensioni, i dati corrispondenti, delimitatori e un chunk finale, con trailer ove applicabile. Una chiusura precoce della connessione e una dimensione malformata sono indizi diversi.
- Confrontate la stessa richiesta controllata sul percorso previsto. Abbinate la richiesta ai log del proxy e dell'upstream. Cercate una chiusura dell'upstream, una trasformazione intermedia o un annullamento dell'applicazione in quel punto.
Non deducete l'incorniciatura HTTP dalla dimensione di un buffer TCP. Una singola lettura socket può contenere mezzo chunk o più chunk; una libreria può poi esporre il contenuto decodificato in buffer diversi. Un record JSON ha ancora un altro confine. Un proxy può reincorniciare una risposta senza preservare i confini originali dei pacchetti.
Se le prove indicano un'implementazione Squid datata, conservatene il numero di versione insieme a quella conclusione. I consigli sulle patch per Squid 2.x non descrivono ogni versione attuale. Mantenete la decodifica normale e la validazione dei certificati durante il confronto: sopprimere l'errore può far sembrare un file incompleto un download riuscito.