Gacaliyeyaasha CONNECT ee Node.js waa inay ilaaliyaan head buffer
Maaree socket-ka CONNECT iyo head buffer-ka Node ee xadka HTTP ilaa tunnel, adigoo ilaalinaya bytes hore loo akhriyay ee ka baxsan headers-ka.
Server-ka HTTP ee Node wuxuu codsiga caadiga ah ee proxy ku maareeyaa iyada oo loo marayo callback-ka codsiga. CONNECT wuxuu qaataa waddo kale: server-ku wuxuu soo saaraa connect oo la socda codsiga, socket-ka macmiilka iyo head buffer.
Dhacdadaas waa wareejinta u dhaxaysa falanqaynta HTTP iyo tunnel. Ma jiro shay ServerResponse caadi ah oo sii wadata isticmaalka taraafikada tunnel-ka.
| Dood | Waxa ay qaaddo |
|---|---|
req | Codsiga CONNECT, oo ay ku jiraan awoodda goobta iyo headers-ka |
clientSocket | Xiriirka ku noqonaya macmiilka |
head | Xogta tunnel-ka ee Node hore u akhriyay ka baxsan headers-ka HTTP, laga yaabee inay madhan tahay |
Dhammaystir go'aanka HTTP ka hor inta aan la gudbin bytes
Hubi host-ka iyo port-ka la codsaday, ku dhaqan geli siyaasadda gelitaanka iyo xaqiijinta proxy-ga, oo samee xiriirka sare. CONNECT wuxuu aqoonsadaa awood sida service.example:443; falanqee qaabkaas adigoo tixgalinaya awoodaha IPv6 halkii aad si indho la'aan ah u kala qaybin lahayd labadii dhibic.
Marka tunnel-ka la aqbalo, dir jawaabta HTTP ee guulaysatay oo ay raacdo sadarka madhan ee dhamaystira. Kadib u gudbi bytes kasta oo head ah kor ka hor inta aadan sii wadin bytes-ka dambe ee socket-ka macmiilka. Ku darida dhageystaha xogta cusub ma soo celin karto buffer hore loogu gaarsiiyay maareeyaha si gooni ah.
Tusaalaha rasmiga ah ee tunnel-ka Node wuxuu sameeyaa wareejintaas isagoo isticmaalaya serverSocket.write(head) ka hor inta aan la isku xirin labada jihada stream. Tusaalahiisa yar wuxuu muujinayaa kala-guurka; proxy la geeyay wuxuu sidoo kale u baahan yahay isku dayo xiriir xaddidan, kontoroolo gelitaan iyo maaraynta meertada nolosha.
Guusha ka dib, bytes-ku waxay ka tirsan yihiin borotokoolka adeegga
Jawaabta CONNECT ee guulaysatay waxay xiriirka u beddelaysaa qulqul bytes. Haddii bartilmaameedku yahay site HTTPS, is-dhaafsiga TLS-kiisu wuxuu ku socdaa qulqulkaas gudihiisa. Kaliya tunnel-ka laguma qasbo proxy-ga inuu soo saaro shahaado website beddel ah.
Ka hor aqbalidda CONNECT, khalad HTTP ayaa sharxi kara sababta loo diiday. Aqbalidda ka dib, qorista HTTP 500 qulqulka waxay bytes ku duri lahayd borotokoolka tunnel-ka. Beddelkeeda, jooji ama baabi'i xiriirka habboon marka ay dhacaan guul-darrooyin dambe.
Ku xir labada jihada maaraynta qulqulka oo ka warqabta cadaadiska dambe, oo go'aami sida dhacdooyinka end, error iyo close ay u dhammeeyaan lammaanaha. Ilaali head buffer-ka bilowga ah oo qayb ka ah isla qaabka lahaanshaha; waa xogta codsiga, ma aha headers HTTP dheeraad ah oo la tuurayo.