Handaki la SOCKS hubeba muunganisho mmoja wa TCP. Go inaweza kufanya TLS na lengwa kupitia handaki hilo na kujadili HTTP/2 hapo; seva ya SOCKS yenyewe haihitaji kuzungumza HTTP/2.

Katika programu inayohifadhi usafirishaji chaguo-msingi wa kawaida wa Go, nakili usanidi wake na uchague proksi:

import (
    "net/http"
    "net/url"
    "time"
)

proxyURL := &url.URL{
    Scheme: "socks5",
    Host: "proxy.example:1080",
}
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

Proksi na lengwa hubaki kuwa thamani tofauti. Chagua kiishio cha SOCKS5 kutoka orodha ya proksi za SOCKS5 kwa thamani ya proksi; HTTP/2 bado inajadiliwa na lengwa. Tumia client kuomba URL halisi ya huduma ya HTTPS, kisha funga mwili wa jibu kupitia mzunguko wa kawaida wa maisha wa programu.

Usafirishaji chaguo-msingi wa kawaida unasaidia HTTP/2. Kuinakili kunahifadhi usanidi huo huku kukiruhusu chaguo la proksi kubadilika. Ukaguzi wa aina unadhani programu haijabadilisha http.DefaultTransport na RoundTripper nyingine.

Kwa usafirishaji uliojengwa tofauti, pitia usanidi wake wa HTTP/2, hasa unapotoa ndoano za dial au TLS maalum. Go inaonyesha ForceAttemptHTTP2 na, katika matoleo mapya, usanidi wazi wa Protocols kwa chaguo hizo.

Lengwa bado linapaswa kutoa HTTP/2 kupitia majadiliano ya TLS. Kagua thamani ya Proto au ProtoMajor ya jibu lililofanikiwa ili kuona kilichotumika. Ombi la HTTPS linalofanikiwa kupitia SOCKS haliothibitishi lenyewe kwamba itifaki iliyojadiliwa ilikuwa HTTP/2.

Makala zinazohusiana