Gall blaen SOCKS5 ddefnyddio dirprwy HTTP fel ei gludydd ymlaen. Mae'n gweithredu fel gweinydd SOCKS tuag at y cleient ac fel cleient HTTP CONNECT tuag at y rhiant. Mae'r ddau gyfnewidiad rheoli yn gorffen cyn i ffrwd y cymhwysiad ddechrau.

Mae'r cais SOCKS CONNECT eisoes yn darparu gwesteiwr neu gyfeiriad y gyrchfan a'r porthladd. Ar gyfer cyfnewidiad HTTP/1.1 darluniadol gyda'r rhiant:

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

Cyfieithwch y canlyniad ar y ffin

Mae'r addasydd yn cwblhau unrhyw ddilysu gofynnol gyda'r rhiant ac yn aros am ganlyniad y CONNECT. Mae ateb 2xx llwyddiannus yn sefydlu twnnel y rhiant. Dim ond wedyn y dylai ddychwelyd yr ateb SOCKS llwyddiant cyfatebol i'r cleient islaw.

Os yw'r rhiant yn gwrthod y llawdriniaeth, anfonwch ateb methiant SOCKS diffiniedig, yna terfynwch gysylltiad y cleient ar unwaith. Mae SOCKS5 yn mynnu'r cau hwnnw o fewn deg eiliad i ganfod y methiant. Cadwch statws HTTP y rhiant fel gwybodaeth ddiagnostig i'r addasydd. Byddai anfon y llinell statws honno fel data cymhwysiad yn rhoi neges rheoli HTTP mewn ffrwd y mae ei chleient yn disgwyl ffrâm SOCKS iddi.

Cyn canlyniad CONNECT llwyddiannus, mae'r rhiant yn dal i siarad HTTP, gan gynnwys ffrâm unrhyw ymateb her neu wall. Ar ôl y gwahanwr penawdau o ganlyniad llwyddiannus, daw'r cysylltiad yn dwnnel; nid oes corff ymateb HTTP i'w fwyta gyntaf.

Cadwch y bytes ar ôl y penawdau

Gall un darlleniad gynnwys diwedd penawdau'r rhiant a bytes o'r gyrchfan gyda'i gilydd. Cedwch y bytes ychwanegol hynny ar gyfer y cymhwysiad islaw. Gall protocolau lle mae'r gweinydd yn siarad gyntaf gyfarch ar unwaith ar ôl i'w gysylltiad agor.

Unwaith y bydd yr ateb SOCKS llwyddiant wedi'i anfon, anfonwch ffrwd y cymhwysiad i'r ddau gyfeiriad. Nid oes angen i'r addasydd bob yn ail un neges cleient ag un neges gweinydd, ac nid oes angen iddo ddeall cofnodion TLS i'w hanfon ymlaen. Ei waith protocol oedd sefydlu a chyfieithu'r ddau drafodaeth twnnel.

Erthyglau cysylltiedig