Als een vermeende PDF of spreadsheet begint met HTTP/1.1 200 OK, heeft de downloader een onbewerkte respons opgeslagen in plaats van het artefact. Deze schematische respons bevat slechts vier bytes inhoud:

HTTP/1.1 200 OK
Transfer-Encoding: chunked

4
DATA
0

Het artefact is DATA. De statusregel, headers, groottemarkering en afsluitende structuur horen bij HTTP. Een vast aantal bytes verwijderen is onveilig omdat headerlengtes variëren. Alles na de eerste lege regel kopiëren laat nog steeds chunk-framing achter, en informatieve antwoorden kunnen aan de definitieve respons voorafgaan.

Vervang voor een normale download het kopiëren van raw socket naar bestand door de response-body-interface van de HTTP-client. Configureer de proxy, valideer de definitieve status en stream de body naar een tijdelijke uitvoer. De client regelt de berichtframing: lengteafgebakende, chunked en door de verbinding afgebakende bodies vereisen verschillende parsing.

Content-encoding is een volgende laag. Bepaal of je gedecodeerde artefactbytes nodig hebt of expliciet opgevraagde onbewerkte inhoud, op basis van het gedocumenteerde gedrag van de client. Gecomprimeerde bytes zijn niet automatisch proxy-corruptie.

Als de applicatie code op socketniveau moet behouden, is zij verantwoordelijk voor al die parseringsregels en voor het afhandelen van lezen en schrijven. Schrijf alleen het aantal bytes dat een read daadwerkelijk retourneerde, niet de capaciteit van de buffer, en verwerk gedeeltelijke writes. Anders kan verouderde bufferinhoud zelfs een correct geëxtraheerde body corrumperen.

HTTPS vereist meer dan het strippen van een CONNECT-respons: na een geslaagde tunnelopzet moet je TLS naar de bestemming opzetten en vervolgens de binnenste HTTP-respons parsen. De versleutelde bytes na de headers van de proxy zijn niet het downloadbare bestand.

Laat mislukte of onvolledige uitvoer onder een tijdelijke naam staan. Publiceer die pas nadat de overdracht en de artefactcontroles slagen; een niet-leeg bestand toont geen volledige download aan.

Gerelateerde artikelen