HTTP/2 Go இன் SOCKS சுரங்கப்பாதைக்குள் பொருந்துகிறது
நிலையான HTTP இடமாற்றத்தை நகலெடுத்து, SOCKS ப்ராக்ஸியைத் தேர்ந்தெடுத்து, உண்மையில் பேச்சுவார்த்தை நடத்தப்பட்ட இலக்கு நெறிமுறையைச் சரிபார்க்கவும்.
ஒரு 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 என்பதைத் தானாக நிரூபிக்காது.