HTTP/2 passar innan í SOCKS-tunnlinum hjá Go
Klona standard HTTP-flutningin, vel SOCKS-proxyina og kanningar-umfarðarprotokollið, sum veruliga varð samrátt.
Ein SOCKS-tunnil ber eina TCP-samband. Go kann gera TLS við endamálið gjøgnum henda tunnilin og samráða HTTP/2 har; SOCKS-tænarin má ikki sjálvur tala HTTP/2.
Í einum forriti, sum varðveitir standard sjálvsett flutningslag hjá Go, klona uppsetingina og vel proxyina:
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,
}
Proxyin og endamálið vera ymisk virði. Vel eitt SOCKS5-endapunkt úr SOCKS5-proxylistanum til proxyvirðið; HTTP/2 verður framvegis samrátt við endamálið. Brúka client til at biðja um veruliga HTTPS-tænastu-URL-in, og lat so svar-kroppin aftur gjøgnum vanliga lívsskeið forritsins.
Standard sjálvsetta flutningslagið stuðlar HTTP/2. At klona tað varðveitir hesa uppseting og loyvir proxyvalinum at broytast. Slag-ástandið býttar, at forritið ikki hevur skift http.DefaultTransport út við øðrum RoundTripper.
Fyri eitt serstakliga bygt flutningslag, far yvir um HTTP/2-uppsetingina, serliga tá tú letur upp tilpassaðar dial- ella TLS-krokar. Go vísir ForceAttemptHTTP2 og í nýggjari útgávum greiða Protocols-uppseting fyri teimum valunum.
Endamálið má framvegis bjóða HTTP/2 gjøgnum TLS-samráðing. Kanna Proto- ella ProtoMajor-virðið í tí eydnaða svarinum at síggja, hvat var brúkt. Ein HTTPS-umbøn, sum eydnast gjøgnum SOCKS, prógvar ikki í sjálvum sær, at samráddi protokollurin var HTTP/2.