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 нь очих газартай хэлэлцэгдсэн хэвээр байна. Бодит HTTPS үйлчилгээний URL-ийг хүсэхийн тулд client ашиглаад, дараа нь хариултын биеийг програмын ердийн амьдралын мөчлөгөөр хаа.

Стандарт өгөгдмөл тээвар HTTP/2-ыг дэмждэг. Үүнийг хуулбарласнаар тохиргоо хадгалагдаж, прокси сонголтыг өөрчлөх боломжтой. Төрөл шалгалт нь програм http.DefaultTransport-ыг өөр RoundTripper-ээр солиогүй гэж үздэг.

Тусдаа бүтээсэн тээврийн хувьд түүний HTTP/2 тохиргоог, ялангуяа өөрчилсөн dial эсвэл TLS дэгээ өгөх үед хянана уу. Go нь ForceAttemptHTTP2-ыг, шинэ хувилбаруудад эдгээр сонголтод зориулсан тодорхой Protocols тохиргоог ил гаргадаг.

Очих газар нь TLS хэлэлцээрээр HTTP/2 санал болгох ёстой хэвээр. Юу ашигласныг харахын тулд амжилттай хариултын Proto эсвэл ProtoMajor утгыг шалгана уу. SOCKS-оор амжилттай болсон HTTPS хүсэлт нь хэлэлцсэн протокол HTTP/2 байсныг өөрөө батлахгүй.

Холбоотой нийтлэлүүд