Pan fo'r ffeil a lawrlwythwyd yn dechrau â llinell statws HTTP
Cadwch fframio'r ymateb HTTP allan o'r ffeil a lawrlwythwyd yn hytrach na chopïo pob beit a ddaw o soced dirprwy i'r ffeil allbwn.
Os yw PDF neu daenlen dybiedig yn dechrau â HTTP/1.1 200 OK, mae'r lawrlwythydd wedi cadw ymateb crai yn lle'r ffeil. Dim ond pedwar beit o gynnwys sydd yn yr ymateb sgematig hwn:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
4
DATA
0
Y ffeil yw DATA. Mae'r llinell statws, y penawdau, y marcwr maint a'r strwythur terfynu yn perthyn i HTTP. Nid yw tynnu nifer sefydlog o feitiau yn ddiogel oherwydd bod hyd y penawdau yn amrywio. Mae copïo popeth ar ôl y llinell wag gyntaf yn gadael fframio darnau o hyd, a gall ymatebion gwybodaeth ragflaenu'r ymateb terfynol.
Ar gyfer lawrlwythiad arferol, disodlwch y copi soced-crai-i-ffeil ag interface corff ymateb y cleient HTTP. Ffurfweddwch ei ddirprwy, dilyswch y statws terfynol a ffrydio'r corff i allbwn dros dro. Mae'r cleient yn trin fframio'r neges: mae cyrff a gyfyngir gan hyd, gan ddarnau a chan gysylltiad angen dosrannu gwahanol.
Mae amgodio cynnwys yn haen arall. Penderfynwch a oes angen beitiau'r ffeil wedi'u dadgodio arnoch neu gynnwys crai a ofynnwyd yn benodol, yn seiliedig ar ymddygiad dogfennedig y cleient. Nid yw beitiau cywasgedig yn llygredd dirprwy yn awtomatig.
Os oes rhaid i'r rhaglen gadw cod ar lefel soced, mae'n berchen ar yr holl reolau dosrannu hynny ynghyd â thrin darllen ac ysgrifennu. Ysgrifennwch yn unig y nifer o feitiau a ddychwelwyd mewn gwirionedd gan ddarlleniad, nid capasiti'r byffer, a thriniwch ysgrifiadau rhannol. Fel arall gall cynnwys byffer segur lygru corff a dynnwyd yn gywir hyd yn oed.
Mae HTTPS angen mwy na chipio ymateb CONNECT: ar ôl sefydlu'r twnnel yn llwyddiannus, sefydlwch TLS y gyrchfan ac yna dosrannu'r ymateb HTTP mewnol. Nid yw'r beitiau wedi'u hamgryptio sy'n dilyn penawdau'r dirprwy yn ffeil i'w lawrlwytho.
Gadewch allbwn methiedig neu anghyflawn o dan enw dros dro. Cyhoeddwch ef yn unig ar ôl i'r trosglwyddiad a gwiriadau'r ffeil lwyddo; nid yw ffeil nad yw'n wag yn profi lawrlwythiad cyflawn.