Kutafsiri Ombi la SOCKS5 kuwa Handaki la HTTP
Kamilisha mabadilishano ya CONNECT na mzazi, rudisha jibu la SOCKS kwa mteja na kisha tu wasilisha baiti za programu.
Sehemu ya mbele ya SOCKS5 inaweza kutumia proksi ya HTTP kama usafirishaji wake unaofuata. Inafanya kazi kama seva ya SOCKS kwa mteja na kama mteja wa HTTP CONNECT kwa mzazi. Mabadilishano mawili ya udhibiti huisha kabla mkondo wa programu haujaanza.
Ombi la SOCKS CONNECT tayari hutoa mwenyeji au anwani ya lengo na bandari. Kwa mabadilishano ya mfano ya HTTP/1.1 na mzazi:
client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
CONNECT service.example.net:443 HTTP/1.1
Host: service.example.net:443
parent → adapter: HTTP/1.1 200 Connection Established
[end of headers]
adapter → client: SOCKS5 success reply
client ↔ adapter ↔ parent ↔ service: application bytes
Tafsiri matokeo kwenye mpaka
Kigeuzi hukamilisha uthibitishaji wowote unaohitajika na mzazi na husubiri matokeo ya CONNECT. Jibu la 2xx lililofanikiwa huweka handaki la mzazi. Ndipo tu linapaswa kurudisha jibu la mafanikio la SOCKS linalolingana kwa mteja wa chini.
Ikiwa mzazi anakataa operesheni, tuma jibu maalum la kushindwa la SOCKS, kisha maliza muunganisho wa mteja mara moja. SOCKS5 inahitaji kufungwa huko ndani ya sekunde kumi baada ya kugundua kushindwa. Weka hali ya HTTP ya mzazi kama taarifa ya uchunguzi kwa kigeuzi. Kuwasilisha mstari huo wa hali kama data ya programu kungeweka ujumbe wa udhibiti wa HTTP katika mkondo ambao mteja wake anatarajia fremu za SOCKS.
Kabla ya matokeo ya CONNECT yaliyofanikiwa, mzazi bado anazungumza HTTP, ikiwa ni pamoja na fremu za jibu lolote la changamoto au hitilafu. Baada ya kitenganishi cha vichwa vya matokeo yaliyofanikiwa, muunganisho huwa handaki; hakuna mwili wa jibu la HTTP wa kutumia kwanza.
Hifadhi baiti zilizo baada ya vichwa
Usomaji mmoja unaweza kuwa na mwisho wa vichwa vya mzazi na baiti kutoka lengo pamoja. Hifadhi baiti hizo za ziada kwa programu ya chini. Itifaki zinazozungumza seva kwanza zinaweza kusalimu mara moja baada ya muunganisho wao kufunguliwa.
Baada ya jibu la mafanikio la SOCKS kutumwa, wasilisha mkondo wa programu pande zote mbili. Kigeuzi hakihitaji kubadilisha ujumbe mmoja wa mteja na ujumbe mmoja wa seva, na hakihitaji kuelewa rekodi za TLS ili kuziwasilisha. Kazi yake ya itifaki ilikuwa kuanzisha na kutafsiri majadiliano mawili ya handaki.