Jika fail yang disangka PDF atau hamparan bermula dengan HTTP/1.1 200 OK, pemuat turun telah menyimpan respons mentah dan bukannya artifak. Respons skematik ini mengandungi hanya empat bait kandungan:

HTTP/1.1 200 OK
Transfer-Encoding: chunked

4
DATA
0

Artifak ialah DATA. Baris status, pengepala, penanda saiz dan struktur penamatan tergolong dalam HTTP. Membuang bilangan bait yang tetap tidak selamat kerana panjang pengepala berbeza-beza. Menyalin segala-galanya selepas baris kosong pertama masih meninggalkan pembingkaian ketulan, dan balasan bermaklumat boleh mendahului respons akhir.

Untuk muat turun biasa, gantikan salinan soket mentah ke fail dengan antara muka badan respons klien HTTP. Konfigurasikan proksinya, sahkan status akhir dan strim badan ke output sementara. Klien mengendalikan pembingkaian mesej: badan yang dihadkan panjang, berketulan (chunked) dan dihadkan sambungan memerlukan penghuraian yang berbeza.

Pengekodan kandungan ialah lapisan seterusnya. Tentukan sama ada anda memerlukan bait artifak yang dinyahkod atau kandungan mentah yang diminta secara eksplisit dengan menggunakan tingkah laku klien yang didokumenkan. Bait termampat bukanlah kerosakan proksi secara automatik.

Jika aplikasi mesti mengekalkan kod peringkat soket, ia bertanggungjawab atas semua peraturan penghuraian itu serta pengendalian baca dan tulis. Tulis hanya bilangan bait yang benar-benar dikembalikan oleh bacaan, bukan kapasiti penimbal, dan kendalikan tulisan separa. Jika tidak, kandungan penimbal lama boleh merosakkan badan yang diekstrak dengan betul sekalipun.

HTTPS memerlukan lebih daripada menanggalkan respons CONNECT: selepas terowong berjaya disediakan, bina TLS destinasi dan kemudian huraikan respons HTTP dalaman. Bait tersulit selepas pengepala proksi bukan fail yang boleh dimuat turun.

Tinggalkan output yang gagal atau tidak lengkap di bawah nama sementara. Terbitkannya hanya selepas pemindahan dan semakan artifak berjaya; fail yang tidak kosong tidak membuktikan muat turun yang lengkap.

Artikel berkaitan