Go के HTTP ट्रांसपोर्ट को अनुकूलित करते समय ProxyFromEnvironment बनाए रखें
ट्रांसपोर्ट टाइमआउट या कनेक्शन पूल अनुकूलित करते समय Go के पर्यावरण प्रॉक्सी चयन को बनाए रखें, डिफ़ॉल्ट को शून्य मान वाले Proxy फ़ील्ड से बदलने के बजाय।
Go का मानक DefaultTransport, Proxy को ProxyFromEnvironment पर सेट करता है। अलग से बनाए गए &http.Transport{} में Proxy फ़ंक्शन nil होता है, जो कोई प्रॉक्सी नहीं चुनता।
यह अंतर केवल टाइमआउट बदलने के लिए ट्रांसपोर्ट जोड़ने के बाद दिख सकता है। मानक डिफ़ॉल्ट अभी भी स्थापित हो तो उसे क्लोन करें और आवश्यक फ़ील्ड बदलें:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}क्लोन पर्यावरण प्रॉक्सी चयन और अन्य डिफ़ॉल्ट ट्रांसपोर्ट सेटिंग्स को सुरक्षित रखता है। टाइप असर्शन मानता है कि एप्लिकेशन ने DefaultTransport को किसी अन्य RoundTripper से नहीं बदला है।
जानबूझकर शून्य से बनाए गए ट्रांसपोर्ट के लिए, जब वह उसकी रूटिंग नीति हो तो Proxy: http.ProxyFromEnvironment स्पष्ट रूप से सेट करें। एक स्पष्ट ProxyURL फ़ंक्शन भिन्न नीति व्यक्त करता है: एक चयनित मध्यस्थ।
समवर्ती अनुरोधों के इसका उपयोग करने से पहले ट्रांसपोर्ट कॉन्फ़िगर करें, फिर कार्यभार के लिए इसे दोबारा उपयोग करें। साझा डिफ़ॉल्ट ऑब्जेक्ट बदलने से असंबंधित क्लाइंट प्रभावित हो सकते हैं।
कस्टम TLS सेटिंग्स अलग हैं। प्रॉक्सी खोज बनाए रखने के लिए प्रमाणपत्र सत्यापन बंद करना आवश्यक नहीं है, और यह हर मेल खाते HTTPS अनुरोध की सुरक्षा बदल देगा।