SOCKS5 суроосун HTTP туннелине которуу
Аталык менен CONNECT алмашуусун бүткөрүңүз, кардарга SOCKS жообун кайтарыңыз жана ошондон кийин гана колдонмо байттарын өткөрүңүз.
SOCKS5 алдыңкы бөлүгү HTTP проксини өзүнүн кийинки ташуучусу катары колдоно алат. Ал кардарга карата SOCKS сервери, аталыкка карата HTTP CONNECT кардары катары иштейт. Эки башкаруу алмашуусу колдонмо агымы башталганга чейин бүтөт.
SOCKS CONNECT суроосу мурунтан эле багыттоо хосту же дареги жана портун берет. Аталык менен үлгүлүү HTTP/1.1 алмашуусу үчүн:
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
Жыйынтыкты чек арада которуңуз
Адаптер аталык талап кылган аутентификацияны аткарып, CONNECT жыйынтыгын күтөт. Ийгиликтүү 2xx жообу аталык туннелин орнотот. Ошондон кийин гана ал тиешелүү SOCKS ийгилик жообун төмөнкү кардарга кайтарышы керек.
Эгер аталык операцияны четке какса, аныкталган SOCKS ийгиликсиздик жообун жөнөтүңүз, анан кардардын байланышын дароо токтотуңуз. SOCKS5 ийгиликсиздик аныкталгандан кийин он секунддун ичинде ошол жабылууну талап кылат. Аталыктын HTTP статусун адаптер үчүн диагностикалык маалымат катары сактаңыз. Ошол статус сабын колдонмо маалыматы катары өткөрүү кардары SOCKS алкагын күткөн агымга HTTP башкаруу билдирүүсүн киргизет.
Ийгиликтүү CONNECT жыйынтыгына чейин аталык дагы эле HTTP сүйлөйт, анын ичинде ар кандай чакырык же ката жообунун алкагы. Ийгиликтүү жыйынтыктын аталыш бөлгүчүнөн кийин байланыш туннелге айланат; мурун керектелүүчү HTTP жооп денеден жок.
Аталыштардан кийинки байттарды сактаңыз
Бир окуу аталыктын аталыштарынын аягын жана багыттоодон келген байттарды чогуу камтый алат. Ошол кошумча байттарды төмөнкү колдонмо үчүн сактаңыз. Сервер биринчи сүйлөгөн протоколдор байланышы ачылары менен саламдаша алат.
SOCKS ийгилик жообу жөнөтүлгөндөн кийин колдонмо агымын эки тарапка тең өткөрүңүз. Адаптерге бир кардар билдирүүсүн бир сервер билдирүүсү менен алмаштыруунун кереги жок, жана аларды өткөрүү үчүн TLS жазууларын түшүнүүнүн да кереги жок. Анын протоколдук иши эки туннель сүйлөшүүсүн орнотуу жана которуу болгон.