د SOCKS تونل یو TCP اړیکه لېږدوي. Go کولی شي د دې تونل له لارې له منزل سره TLS وکړي او هلته د HTTP/2 خبرې وکړي؛ SOCKS سرور پخپله اړتیا نلري چې HTTP/2 ووایي.

په هغه پروګرام کې چې د Go معیاري اصلي لېږد ساتي، د هغې ترتیبات کاپي کړئ او پراکسي وټاکئ:

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,
}

پراکسي او منزل بېل بېل ارزښتونه پاتې کېږي. د پراکسي ارزښت لپاره د SOCKS5 پراکسي لېست څخه یو SOCKS5 پای ټکی وټاکئ؛ HTTP/2 لا هم له منزل سره خبرې کېږي. client وکاروئ ترڅو د HTTPS خدمت ریښتینی URL وغواړئ، بیا د غوښتنلیک د عادي ژوند دورې له لارې د ځواب بدن بند کړئ.

معیاري اصلي لېږد HTTP/2 ملاتړ کوي. د هغې کاپي کول هغه ترتیبات ساتي او د پراکسي ټاکلو بدلون ته اجازه ورکوي. د ډول ازموینه فرض کوي چې پروګرام http.DefaultTransport له بل RoundTripper سره نه دی بدل کړی.

د جلا جوړ شوي لېږد لپاره، د هغې HTTP/2 ترتیبات وګورئ، په ځانګړې توګه کله چې دودیز dial یا TLS هنګونه برابروئ. Go ForceAttemptHTTP2 او په نویو خپرونو کې د هغو ټاکنو لپاره روښانه Protocols ترتیبات ښیي.

منزل باید لا هم د TLS خبرو له لارې HTTP/2 وړاندې کړي. د بریالي ځواب Proto یا ProtoMajor ارزښت وګورئ ترڅو وګورئ څه کارول شوي. د SOCKS له لارې بریالۍ HTTPS غوښتنه پخپله ثابتوي نه چې خبرې شوی پروتوکول HTTP/2 و.

اړوندې مقالې