Una risposta CONNECT riuscita non ha corpo HTTP
Termina una risposta HTTP/1.1 CONNECT riuscita al confine delle intestazioni, poi inoltra i byte del tunnel senza chunk framing e senza riavviare la connessione.
Una risposta HTTP/1.1 CONNECT riuscita termina dopo la sua sezione di intestazioni:
HTTP/1.1 200 Connection Established
Oltre quel confine la stessa connessione trasporta il tunnel. Per una destinazione HTTPS, i byte successivi del client avviano di norma lo scambio TLS con la destinazione.
Il proxy non deve aggiungere Transfer-Encoding né Content-Length a una risposta CONNECT riuscita. Non esiste alcun corpo di risposta HTTP da suddividere in chunk. Aggiungere un chunk finale vuoto iniettarebbe invece byte nel nuovo tunnel.
Anche il client ha un requisito: deve ignorare quei campi di framing se compaiono in una risposta CONNECT 2xx. Un mittente malformato non è quindi motivo per descrivere ogni client conforme come in attesa di un corpo suddiviso.
Mantieni aperta la connessione stabilita per l’inoltro. Chiuderla dopo 200 distrugge il tunnel; aprire un’altra connessione non è la continuazione della richiesta CONNECT accettata.
Una risposta CONNECT fallita ha una gestione diversa e può portare un normale corpo di errore HTTP. Separa quella risposta dalla consegna riuscita quando implementi o leggi una traccia del proxy.