ஒரு 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 என்பதைத் தானாக நிரூபிக்காது.

தொடர்புடைய கட்டுரைகள்