Proxy-ga hore wuxuu akhriyaa khadka codsiga iyo madaxyada, wuu gudbiyaa, ka dibna wuxuu select ku sugayaa jir POST. Macmiilku hore ayuu u diray. Labada dhinac waxay u muuqdaan inay midba midka kale sugayo.

Marka la isticmaalayo BaseHTTPRequestHandler ee Python, akhrinta madaxyada waxay dhex martaa rfile, oo ah qulqulka gelinta kaydsan. Qulqulkaas wuxuu horay u akhrin karaa oo u hayn karaa bytes kuwaas oo ka tirsan jirka. Sugitaanka socket-ka hoose wuxuu kaliya weydiiyaa haddii file descriptor-kiisu diyaar yahay; ma weydiiyo haddii qulqulka Python uu hore u leeyahay xog la isticmaali karo.

Raac kaydka akhriyay madaxyada

Jirka sidoo kale ka akhri self.rfile. Ha u wareegin self.connection.recv ka dib markaad madaxyada ku falanqayso qulqulka kaydsan. Haddii kale koodku wuxuu dhaafi karaa bytes uu qulqulkaas hore u hayo oo wuxuu sugayaa xog aan mar dambe la soo diri doonin.

In rfile laftiisa loo gudbiyo select ma keento in select uu baaro kaydkiisa Python. API-ga diyaargarowga wuxuu ku shaqeeyaa file descriptor-ka shayga.

Codsiga leh hal Content-Length ansax ah oo aan lahayn Transfer-Encoding, isticmaal si sax ah tirada bytes ee lagu dhawaaqay, adigoo maareynaya dhammaadka gelinta ee goor hore iyo xadkaaga cabbirka iyo wakhtiga. Ha akhrin ilaa EOF: macmiil isticmaalaya xiriir joogto ah ayaa laga yaabaa inuu xiriirka uga tago furan ka dib markuu dhammeeyo codsiga.

Ka dhig qaabaynta qayb cad oo proxy-ga ah

Jidadka codsiga ee chunked waxay u baahan yihiin taageero qaabayn chunked. Lama akhrin karo iyada oo la raadinayo Content-Length maqan. Xogta dhererka aan caddayn waxay u baahan tahay waddo diidmo oo qeexan, halkii la dooran lahaa madaxa u muuqda mid ku habboon.

Handler xannibaya wuxuu sii wadi karaa isticmaalka interface-ka qulqulkiisa akhrin xaddidan. Proxy dhacdooyin ku shaqeeya wuxuu u baahan yahay qaab kayd ah oo isku daraya akhrinta horay ee parser-ka iyo maareynta diyaargarowga. Beddelka waqtiga sugitaanka lama heshiin doono laba isticmaale oo madaxbannaan oo isku socket ah.

Cilad-baaristan waxay gaar u tahay halka bytes-ka soo galaya lagu hayo. Ka dib marka proxy-gu isticmaalo jirka saxda ah, wali waa inuu u gudbiyaa jirkaas qaabayn HTTP joogto ah. Handler-ka caadiga ah ee http.server waa meel faa'iido leh oo lagu fahmo habka, laakiin ma aha hirgelin proxy hore oo wax soo saar.

Maqaallo la xiriira