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 ئىكەنلىكىنى ئىسپاتلىمايدۇ.

مۇناسىۋەتلىك ماقالىلەر