Përkthimi i një kërkese SOCKS5 në një tunel HTTP
Përfundoni shkëmbimin CONNECT me prindin, ktheni përgjigjen SOCKS te klienti dhe vetëm më pas përcillni bajtët e aplikacionit.
Një frontend SOCKS5 mund të përdorë një proxy HTTP si transportin e vet të mëtejshëm. Ai vepron si server SOCKS ndaj klientit dhe si klient HTTP CONNECT ndaj prindit. Të dy shkëmbimet e kontrollit përfundojnë para se të fillojë rryma e aplikacionit.
Kërkesa SOCKS CONNECT tashmë ofron hostin ose adresën e destinacionit dhe portën. Për një shkëmbim ilustrues HTTP/1.1 me prindin:
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
Përkthejeni rezultatin në kufi
Përshtatësi kryen çdo vërtetim të kërkuar nga prindi dhe pret rezultatin e CONNECT. Një përgjigje 2xx e suksesshme vendos tunelin e prindit. Vetëm atëherë duhet të kthejë përgjigjen përkatëse të suksesit SOCKS te klienti në rrjedhën e poshtme.
Nëse prindi e refuzon veprimin, dërgoni një përgjigje të përcaktuar dështimi SOCKS dhe më pas ndërpritni menjëherë lidhjen e klientit. SOCKS5 e kërkon atë mbyllje brenda dhjetë sekondave nga zbulimi i dështimit. Mbani statusin HTTP të prindit si informacion diagnostikues për përshtatësin. Përcjellja e asaj rreshti statusi si të dhëna aplikacioni do të vendoste një mesazh kontrolli HTTP në një rrymë, klienti i së cilës pret kornizim SOCKS.
Para një rezultati të suksesshëm CONNECT, prindi vazhdon të flasë HTTP, përfshirë kornizimin e çdo përgjigjeje sfide ose gabimi. Pas ndarësit të kokave të një rezultati të suksesshëm, lidhja bëhet tuneli; nuk ka asnjë trup përgjigjeje HTTP për t'u konsumuar fillimisht.
Ruani bajtët pas kokave
Një lexim mund të përmbajë bashkë fundin e kokave të prindit dhe bajtë nga destinacioni. Ruani ata bajtë shtesë për aplikacionin në rrjedhën e poshtme. Protokollet ku serveri flet i pari mund të përshëndesin menjëherë pasi hapet lidhja e tyre.
Pasi dërgohet përgjigja e suksesit SOCKS, përcillni rrymën e aplikacionit në të dy drejtimet. Përshtatësi nuk ka nevojë të alternojë një mesazh klienti me një mesazh serveri dhe nuk ka nevojë t'i kuptojë regjistrimet TLS për t'i përcjellë ato. Puna e tij protokollare ishte vendosja dhe përkthimi i dy negociatave të tunelit.