SOCKS5 تەلەپنى HTTP تۇنېلغا ئايلاندۇرۇش
ئاتا CONNECT ئالماشتۇرۇشىنى تۈگىتىڭ، خېرىدارغا SOCKS جاۋابىنى قايتۇرۇڭ، ئاندىن ئاپپارات بايتلىرىنى يەتكۈزۈڭ.
SOCKS5 ئالدى تەرەپ HTTP ۋاكالەتچىنى ئۆزىنىڭ كېيىنكى توشۇش ۋاسىتىسى قىلالايدۇ. ئۇ خېرىدارغا قارىتا SOCKS مۇلازىمېتىرى، ئاتىغا قارىتا HTTP CONNECT خېرىدارى بولۇپ ئىشلەيدۇ. ئىككى كونترول ئالماشتۇرۇش ئاپپارات ئېقىمى باشلىنىشتىن بۇرۇن ئاخىرلىشىدۇ.
SOCKS CONNECT تەلىپى نىشان host ياكى ئادرېس ۋە پورتنى ئاللىبۇرۇن تەمىنلەيدۇ. ئاتا بىلەن مىسال 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 خاتىرىلىرىنى چۈشىنىشنىڭمۇ ھاجىتى يوق. ئۇنىڭ پروتوكول خىزمىتى ئىككى تۇنېل سۆھبىتىنى قۇرۇش ۋە تەرجىمە قىلىش ئىدى.