Kapag ang Na-download na File ay Nagsisimula sa HTTP Status Line
Panatilihin ang pag-frame ng HTTP response sa labas ng na-download na artifact sa halip na kopyahin ang bawat byte na natanggap mula sa proxy socket papunta sa output file.
Kung ang pinaghihinalaang PDF o spreadsheet ay nagsisimula sa HTTP/1.1 200 OK, nag-save ang downloader ng raw na tugon sa halip na ang artifact. Ang schematic na tugon na ito ay may apat na byte lamang na nilalaman:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
4
DATA
0
Ang artifact ay DATA. Ang status line, mga header, size marker at pangwakas na istruktura ay kabilang sa HTTP. Hindi ligtas ang pag-alis ng fixed na bilang ng byte dahil nag-iiba ang haba ng mga header. Ang pagkopya ng lahat pagkatapos ng unang blangkong linya ay nag-iiwan pa rin ng chunk framing, at ang mga informational na tugon ay maaaring mauna sa huling tugon.
Para sa normal na pag-download, palitan ang pagkopya mula sa raw socket papunta sa file ng response-body interface ng HTTP client. I-configure ang proxy nito, i-validate ang huling status at i-stream ang body sa pansamantalang output. Ang client ang humahawak sa message framing: ang length-delimited, chunked at connection-delimited na body ay nangangailangan ng iba't ibang parsing.
Ang content encoding ay isa pang layer. Magpasya kung kailangan mo ang decoded na byte ng artifact o ang tahasang hiniling na raw na nilalaman gamit ang dokumentadong pag-uugali ng client. Ang mga compressed na byte ay hindi awtomatikong proxy corruption.
Kung kailangang panatilihin ng application ang socket-level na code, ito ang may pananagutan sa lahat ng mga parsing rule na iyon pati na ang paghawak sa pagbasa at pagsulat. Isulat lamang ang bilang ng byte na aktwal na ibinalik ng pagbasa, hindi ang kapasidad ng buffer, at pangasiwaan ang partial writes. Kung hindi, ang lumang nilalaman ng buffer ay makakasira kahit sa tamang na-extract na body.
Ang HTTPS ay nangangailangan ng higit pa sa pag-alis ng CONNECT response: pagkatapos ng matagumpay na tunnel setup, magtatag ng TLS sa destinasyon at pagkatapos ay i-parse ang panloob na HTTP response. Ang naka-encrypt na byte pagkatapos ng mga header ng proxy ay hindi ang na-download na file.
Iwanan ang nabigo o hindi kumpletong output sa ilalim ng pansamantalang pangalan. Ilathala lamang ito pagkatapos ng matagumpay na transfer at mga pagsusuri ng artifact; ang file na hindi walang laman ay hindi nagpapatunay ng kumpletong pag-download.