Za a iya adana jikin POST na wakilin HTTP na Python a cikin rfile
Karanta buƙatar wakilin HTTP na Python ta hanyar shigar da mai sarrafawa ke ajiyewa maimakon jiran baytocin da suka riga suka bar ajiyar socket.
Wakilin gaba yana karanta layin buƙata da kanun kai, yana tura su, sannan yana jira a cikin select jikin POST. Abokin ciniki ya riga ya aika shi. Bangarorin biyu suna kamar suna jiran juna.
Da BaseHTTPRequestHandler na Python, karanta kanun kai yana bi ta rfile, rafi na shiga da aka adana. Wannan rafin na iya karantawa gaba ya riƙe baytocin da suka shafi jiki. Jira a kan socket na ƙasa yana tambayar kawai ko mai siffanta fayil ɗinsa a shirye yake; ba ya tambayar ko rafin Python ya riga ya ƙunshi bayanai masu amfani.
Bi ajiyar da ta karanta kanun kai
Karanta jikin ta hanyar self.rfile kuma. Kada ka koma zuwa self.connection.recv bayan ka yi nazarin kanun kai da rafin da aka adana. In ba haka ba lambar na iya tsallake baytocin da rafin ya riga ya riƙe kuma ta jira bayanan da ba za a sake aikawa ba.
Ba da rfile kansa ga select ba ya sa select ya duba ajiyarsa ta Python. API na shirye-shirye yana aiki ta mai siffanta fayil na abu.
Don buƙata mai ingantaccen Content-Length ɗaya kuma ba tare da Transfer-Encoding ba, cinye daidai adadin baytocin da aka bayyana, tare da kula da ƙarshen shigar da ya zo da wuri da iyakokin girma da lokacinka. Kada ka karanta har EOF: abokin ciniki da ke amfani da haɗi mai ɗorewa na iya barin haɗin a buɗe bayan ya gama buƙatar.
Ka mai da ƙira wani sashe bayyananne na wakilin
Jikin buƙata na chunked suna buƙatar tallafin ƙira na chunked. Ba za a iya karanta su ta hanyar neman Content-Length da ba ya nan ba. Bayanan tsayi marasa tabbas suna buƙatar hanyar ƙin yarda da aka ayyana, maimakon zaɓar kan da ya yi kama da dacewa.
Mai sarrafawa mai toshewa na iya ci gaba da amfani da fasalin rafinsa tare da iyakantaccen karatu. Wakilin da ake tafiyar da shi ta al'amura yana buƙatar tsarin ajiya wanda ke haɗa karatun gaba na mai nazari da kula da shirye-shirye. Canza lokacin jira ba zai sasanta masu amfani biyu masu zaman kansu na socket ɗaya ba.
Wannan binciken ya shafi inda ake riƙe baytocin da ke shigowa. Bayan wakilin ya cinye jikin da ya dace, har yanzu yana buƙatar tura wannan jikin tare da daidaitaccen ƙirar HTTP. Mai sarrafawa na yau da kullum na http.server wuri ne mai amfani don fahimtar tsarin, amma ba aiwatar da wakilin gaba na samarwa ba ne.