דער פֿאָרויס־פּראָקסי לייענט די פֿאָדערונג־צײַל און די קעפּלעך, שיקט זיי ווײַטער, און דאַן וואַרט אין select אויף אַ POST קערפער. דער קליענט האָט עס שוין געשיקט. ביידע זײַטן זעען אויס ווי זיי וואַרטן איינער אויפֿן אַנדערן.

מיט Python'ס BaseHTTPRequestHandler גייט לייענען די קעפּלעך דורך rfile, אַ געבופֿערטער אַרײַנגאַנג־שטראָם. יענער שטראָם קען לייענען פֿאָרויס און האַלטן בייטן וואָס געהערן צום קערפער. וואַרטן אויפֿן אונטערשטן סאָקעט פֿרעגט נאָר צי זײַן טעקע־באַשרײַבער איז גרייט; עס פֿרעגט נישט צי דער Python שטראָם האָט שוין נוצלעכע דאַטן.

גייט נאָך דעם בופֿער וואָס האָט געלייענט די קעפּלעך

לייענט דעם קערפער אויך דורך self.rfile. טוישט נישט צו self.connection.recv נאָך דעם וואָס איר האָט געפּאַרסט די קעפּלעך מיטן געבופֿערטן שטראָם. אַנדערש קען דער קאָד איבערשפּרינגען בייטן וואָס דער שטראָם האַלט שוין און וואַרטן אויף דאַטן וואָס וועלן קיינמאָל מער נישט געשיקט ווערן.

איבערגעבן rfile אַליין צו select מאַכט נישט אַז select זאָל באַטראַכטן זײַן Python בופֿער. די גרייטקייט API אַרבעט דורך דעם אָביעקטס טעקע־באַשרײַבער.

פֿאַר אַ פֿאָדערונג מיט איין גילטיקער Content-Length און אָן Transfer-Encoding, פֿאַרנוצט פּונקט די דערקלערטע צאָל בייטן, און באַהאַנדלט אַ פֿרירן סוף פֿון אַרײַנגאַנג און אייערע גרייס־ און צײַט־גרענעצן. לייענט נישט ביז EOF: אַ קליענט וואָס נוצט אַ פּערמאַנענטער פֿאַרבינדונג קען לאָזן די פֿאַרבינדונג אָפֿן נאָך דער פֿאָדערונג.

מאַכט פֿראַמינג אַ קלאָרן טייל פֿון דער פּראָקסי

צעשטיקלטע פֿאָדערונג־קערפערס דאַרפֿן שטיצע פֿאַר צעשטיקלטער פֿראַמינג. מען קען זיי נישט לייענען דורך זוכן אַ פֿעלנדיקער Content-Length. אומקלאָרע לענג־מעטאַדאַטן דאַרפֿן אַ באַשטימטע אָפּווײַזונג־וועג, אַנשטאָט אויסקלײַבן דעם קעפּל וואָס זעט אויס באַקוועם.

אַ בלאָקירנדיקער האַנדלער קען ממשיך זײַן מיט זײַן שטראָם־צווישנפֿלאַך מיט באַגרענעצטע לייענונגען. אַ געשעעניש־געטריבענע פּראָקסי דאַרף אַ בופֿער־מאָדעל וואָס פֿאַרייניקט דעם פּאַרסערס פֿאָרויס־לייענען מיט גרייטקייט־באַהאַנדלונג. ענדערן אַ צײַט־אָפּשניט וועט נישט פֿאַרזייניקן צוויי אומאָהענגיקע פֿאַרנוצער פֿון דעם זעלבן סאָקעט.

די דיאַגנאָז באַציט זיך ספּעציפֿיש אויף וווּ די אַרײַנקומענדיקע בייטן ווערן געהאַלטן. נאָך דעם וואָס די פּראָקסי האָט פֿאַרנוצט דעם ריכטיקן קערפער, דאַרף זי נאָך אים שיקן ווײַטער מיט אַ קאָנסיסטענטער HTTP פֿראַמינג. דער סטאַנדאַרט http.server האַנדלער איז אַ נוצלעכער אָרט צו פֿאַרשטיין דעם מעכאַניזם, אָבער ער איז נישט קיין פּראָדוקציע־אימפּלאַמענטאַציע פֿון אַ פֿאָרויס־פּראָקסי.

פֿאַרבונדענע אַרטיקלען