د Python HTTP پراکسي POST جسمونه کولای شو په rfile کې بفر کړو
د Python HTTP پراکسي غوښتنه د handler له بفر شوي انپټ څخه ولولئ، پرځای د هغو بایټونو تمبې چې له socket بفر څخه وتلي دي.
د مخ پر وړاندې پراکسي د غوښتنې کرښه او سرلیکونه لولي، هغه لېږي، بیا په select کې د POST جسم ته انتظار کوي. پیرودونکي دا لا دمخه لېږلی دی. دواړه خواوې د یو بل انتظار کوي.
د Python BaseHTTPRequestHandler سره، د سرلیکونو لوستل د rfile له لارې ځي، چې یو بفر شوی د انپټ جریان دی. هغه جریان کولای شي مخکې ولولي او د جسم بایټونه وساتي. د لاندې socket انتظار یوازې پوښتنه کوي چې ایا د فایل تشریح کوونکی چمتو دی؛ نه پوښتنه کوي چې ایا Python جریان لا دمخه د کار وړ معلومات لري.
هغه بفر تعقیب کړئ چې سرلیکونه یې لوستلي
جسم هم د self.rfile له لارې ولولئ. د بفر شوي جریان سره سرلیکونه تحلیل کړئ او بیا self.connection.recv ته مه ځئ. که نه، کوډ کولای شي هغه بایټونه چې جریان یې ساتلي پرېږدي او د هغو معلوماتو انتظار وکړي چې بیا به هېڅکله ونه لېږل شي.
rfile پخپله select ته ورکول select دې ته نه هڅوي چې د هغه Python بفر وګوري. د چمتووالي API د شي د فایل تشریح کوونکي له لارې کار کوي.
د یو اعتبار لرونکي Content-Length او پرته له Transfer-Encoding غوښتنې لپاره، په سمه توګه اعلان شوی شمېر بایټونه وکاروئ، د انپټ ژر پای او ستاسو د اندازې او وخت محدودیتونه اداره کړئ. تر EOF مه لولئ: هغه پیرودونکی چې دوامداره اړیکه کاروي کولای شي اړیکه د غوښتنې له پای وروسته پرانیستې وساتي.
چوکاټ جوړونه د پراکسي څرګنده برخه وګرځوئ
په chunked توګه د غوښتنې جسمونه د chunked چوکاټ ملاتړ ته اړتیا لري. دوی د نه شتون Content-Length په لټه کې لوستل کېدای نشي. مبهم د اوږدوالي مېټاډاټا ته تعریف شوې د رد لارې ته اړتیا ده، نه د هغه سرلیک غوره کول چې اسانه ښکاري.
بلاک کوونکی handler کولای شي خپل جریان انټرفیس د محدود لوستلو سره دوام ورکړي. د پېښو په واسطه چلېدونکي پراکسي ته د بفر ماډل ته اړتیا ده چې د parser مخکې لوستل د چمتووالي اداره کولو سره یوځای کړي. د وخت محدودیت بدلول به د یوې socket دوه خپلواک کاروونکي سره سم نه کړي.
دا تشخیص ځانګړی دی چې راتلونکي بایټونه چېرته ساتل کېږي. وروسته له دې چې پراکسي سم جسم وکاراوه، لا هم باید هغه جسم د ثابت HTTP چوکاټ سره ولېږي. معیاري http.server handler د میکانېزم د پوهېدو لپاره ګټور ځای دی، مګر دا د تولید د مخ پر وړاندې پراکسي پلي کول نه دي.