Kifuniko kidogo cha proksi kinaweza kufanya kazi kwa HTTPS kisha kinakwama kinapotumika tena kwa itifaki ambayo seva yake huzungumza kwanza. Mstari unaotiliwa shaka mara nyingi ni ule unaosubiri bafa ya upokeaji iishe na \r\n\r\n.

TCP humpa mteja mtiririko. Mwito mmoja wa upokeaji unaweza kurudisha nusu ya mstari wa hali ya HTTP, jibu kamili la CONNECT, au jibu hilo likifuatiwa mara moja na data ya handaki. Hakuna ahadi kwamba usomaji utasimama mwisho wa vichwa.

Tafuta mpaka ndani ya bafa

Kwa mabadilishano ya HTTP/1.1 CONNECT, kusanya baiti hadi kimaliza kichwa kionekane popote kwenye bafa. Gawanya mahali pa kwanza inapotokea. Changanua mstari wa hali na vichwa kutoka sehemu ya kwanza; hifadhi kila kitu baada ya mpaka kando. Tumia kikomo cha ukubwa wa vichwa na kikomo cha muda unaposubiri, na chukulia usomaji tupu wa soketi kama muunganisho uliofungwa badala ya mwaliko mwingine wa kuzunguka.

Jibu la mwisho la 2xx lililofanikiwa hubadilisha muunganisho kuwa hali ya handaki mara moja baada ya vichwa hivyo. Baiti zinazofuata tayari ni baiti za handaki. Usizitupe, usisubiri mwili wa jibu la CONNECT, na usitafsiri sehemu ya Content-Length kama ruhusa ya kutumia sehemu ya itifaki mpya. Majibu ya taarifa, kama yapo, lazima yashughulikiwe kabla ya jibu hilo la mwisho.

Kifuniko lazima kipikishe mabaki yake

Kurudisha soketi ya msingi pekee hupoteza baiti ambazo kichanganuzi cha kuandikiana kimekwisha kuchota kutoka humo. Msomaji anayefuata anahitaji mtiririko wenye bafa unaotoa kwanza mkia uliohifadhiwa kisha kuendelea na usomaji wa soketi. Kwa itifaki ya seva-kwanza, kupoteza salamu hiyo ya kwanza kunaweza kuwaacha pande zote mbili wakingoja bila mwisho.

Kinyume chake, baiti kutoka jibu la CONNECT lililoshindwa si salamu ya handaki. 407 bado ni ya mabadilishano ya proksi na inahitaji ushughulikiaji wa uthibitishaji; hali nyingine isiyofanikiwa inahitaji njia sahihi ya hitilafu.

Hili ni muhimu hasa unaporekebisha mteja wa FTP au SSH kupitia proksi ya HTTP. Proksi pia lazima iruhusu lango lengwa lililoombwa, na FTP inaweza kuhitaji miunganisho ya ziada ya data. Uchanganuzi sahihi wa vichwa hutatua uhamishaji wa mtiririko; hauwezi kutoa ruhusa ya CONNECT au kutoa chaneli ya pili ya FTP.

Makala zinazohusiana