የ 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 ሁኔታ ለአስማሚው የምርመራ መረጃ አድርገው ያስቀምጡ። ያንን የሁኔታ መስመር እንደ መተግበሪያ ውሂብ ማስተላለፍ የ HTTP ቁጥጥር መልእክትን ደንበኛው የ SOCKS ማዕቀፍ ወደሚጠብቅበት ፍሰት ውስጥ ያስገባል።

ስኬታማ የ CONNECT ውጤት ከመምጣቱ በፊት ወላጁ አሁንም HTTP ይናገራል፣ የማንኛውም ተግዳሮት ወይም የስህተት መልስ ማዕቀፍን ጨምሮ። ከስኬታማ ውጤት ራስጌ መለያ በኋላ ግንኙነቱ ዋሻው ይሆናል፤ በመጀመሪያ የሚበላ የ HTTP ምላሽ አካል የለም።

ከራስጌዎቹ በኋላ ያሉትን ባይቶች ይጠብቁ

አንድ ንባብ የወላጁ ራስጌዎች መጨረሻ እና ከመዳረሻው የመጡ ባይቶችን አንድ ላይ ሊይዝ ይችላል። እነዚያን ተጨማሪ ባይቶች ለታችኛው መተግበሪያ ያቆዩ። አገልጋይ-ቀዳሚ ፕሮቶኮሎች ግንኙነታቸው ከተከፈተ በኋላ ወዲያውኑ ሊሰላለሙ ይችላሉ።

የ SOCKS ስኬት መልስ ከተላከ በኋላ፣ የመተግበሪያውን ፍሰት በሁለቱም አቅጣጫዎች ያስተላልፉ። አስማሚው አንድ የደንበኛ መልእክት ከአንድ የአገልጋይ መልእክት ጋር መቀያየር አያስፈልገውም፣ እንዲሁም የ TLS መዝገቦችን ለማስተላለፍ እነሱን መረዳት አያስፈልገውም። የፕሮቶኮል ሥራው ሁለቱን የዋሻ ድርድሮች መመስረትና መተርጎም ነበር።

ተዛማጅ ጽሑፎች