Vertaal 'n SOCKS5-versoek na 'n HTTP-tonnel
Voltooi die CONNECT-uitruiling met die ouer, stuur 'n SOCKS-antwoord aan die kliënt en stuur eers daarna toepassingsgrepe.
'n SOCKS5-frontend kan 'n HTTP-proxy as sy verdere vervoer gebruik. Dit tree as 'n SOCKS-bediener teenoor die kliënt op en as 'n HTTP CONNECT-kliënt teenoor die ouer. Albei beheeruitruilings eindig voordat die toepassingstroom begin.
Die SOCKS CONNECT-versoek verskaf reeds die bestemmingsgasheer of -adres en die poort. Vir 'n illustratiewe HTTP/1.1-uitruiling met die ouer:
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
Vertaal die resultaat by die grens
Die adapter voltooi enige vereiste verifikasie by die ouer en wag op die CONNECT-resultaat. 'n Suksesvolle 2xx-antwoord vestig die tonnel na die ouer. Eers dan moet dit die ooreenstemmende SOCKS-suksesantwoord aan die stroomaf kliënt terugstuur.
As die ouer die bewerking verwerp, stuur 'n gedefinieerde SOCKS-mislukkingsantwoord en beëindig dan die kliëntverbinding dadelik. SOCKS5 vereis daardie sluiting binne tien sekondes nadat die fout opgemerk is. Hou die ouer se HTTP-status as diagnostiese inligting vir die adapter. Om daardie statuslyn as toepassingsdata deur te stuur, sou 'n HTTP-beheerboodskap in 'n stroom plaas waarvan die kliënt SOCKS-raamwerk verwag.
Voor 'n suksesvolle CONNECT-resultaat praat die ouer nog HTTP, insluitend die raamwerk van enige uitdagings- of foutantwoord. Ná die kopafsluiter van 'n suksesvolle resultaat word die verbinding die tonnel; daar is geen HTTP-antwoordliggaam om eers te verbruik nie.
Bewaar die grepe ná die koptekste
'n Lees kan die einde van die ouer se koptekste en grepe van die bestemming saam bevat. Hou daardie ekstra grepe vir die stroomaf toepassing. Bediener-eerste protokolle kan dadelik groet nadat hul verbinding oopgemaak het.
Sodra die SOCKS-suksesantwoord gestuur is, stuur die toepassingstroom in albei rigtings deur. Die adapter hoef nie een kliëntboodskap met een bedienerboodskap af te wissel nie, en hoef nie TLS-rekords te verstaan om hulle deur te stuur nie. Sy protokolwerk was om die twee tonnelonderhandelinge te vestig en te vertaal.