Å omsetje ein SOCKS5-førespurnad til ein HTTP-tunnel
Fullfør CONNECT-utvekslinga med forelderen, returner eit SOCKS-svar til klienten og send først deretter applikasjonsbyta.
Ein SOCKS5-frontend kan bruke ein HTTP-proxy som sin vidare transport. Han opptrer som SOCKS-tenar overfor klienten og som HTTP CONNECT-klient overfor forelderen. Dei to kontrollutvekslingane blir avslutta før applikasjonsstraumen byrjar.
SOCKS CONNECT-førespurnaden leverer alt målverten eller -adressa og porten. For ei illustrerande HTTP/1.1-utveksling med forelderen:
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
Omset resultatet ved grensa
Adapteren fullfører all påkravd autentisering hos forelderen og ventar på CONNECT-resultatet. Eit vellukka 2xx-svar etablerer tunnelen til forelderen. Først deretter bør han returnere det tilsvarande SOCKS-suksesssvaret til klienten nedstraums.
Viss forelderen avviser operasjonen, send eit definert SOCKS-feilsvar, og avslutt deretter klienttilkoplinga med det same. SOCKS5 krev den lukkinga innan ti sekund etter at feilen er oppdaga. Hald på HTTP-statusen til forelderen som diagnostisk informasjon for adapteren. Å sende den statuslinja vidare som applikasjonsdata ville plassere ei HTTP-kontrollmelding i ein straum der klienten ventar SOCKS-innramming.
Før eit vellukka CONNECT-resultat snakkar forelderen framleis HTTP, inkludert innramminga av eitkvart utfordrings- eller feilsvar. Etter hovudskiljeteiknet i eit vellukka resultat blir tilkoplinga tunnelen; det er ingen HTTP-svarstekst å bruke først.
Ta vare på byta etter hovuda
Éi lesing kan innehalde slutten av hovuda til forelderen og byta frå målet samstundes. Ta vare på desse ekstra byta for applikasjonen nedstraums. Protokollar der tenaren snakkar først, kan helse med det same etter at tilkoplinga deira er opna.
Etter at SOCKS-suksesssvaret er sendt, send applikasjonsstraumen vidare i båe retningar. Adapteren treng ikkje veksle mellom éi klientmelding og éi tenarmelding, og han treng ikkje å forstå TLS-poster for å sende dei vidare. Protokollarbeidet hans var å etablere og omsetje dei to tunnel-forhandlingane.