Go localhost साठी प्रॉक्सी का वगळतो
Go मधील अंगभूत लूपबॅक अपवाद आणि NO_PROXY यांतील फरक समजून पर्यावरणाधारित रूटिंगची स्पष्ट ProxyURL शी तुलना करा.
Go च्या पर्यावरणाधारित प्रॉक्सी निवडकात localhost आणि लूपबॅक IP गंतव्यांसाठी अंगभूत अपवाद आहे. NO_PROXY रिकामे केल्याने हा अपवाद दूर होत नाही. त्यामुळे स्थानिक चाचणी थेट जोडली जाऊ शकते, तर सार्वजनिक होस्टनावाकडे केलेली विनंती अपेक्षेप्रमाणे प्रॉक्सी वापरते.
हा नियम विनंतीच्या गंतव्याशी संबंधित आहे. स्वतःचा पत्ता 127.0.0.1 असलेला प्रॉक्सी लिसनर वापरण्यास तो अडथळा आणत नाही.
विनंती न पाठवता निवडक तपासा
package main
import (
"fmt"
"net/http"
"net/url"
)
func main() {
fixed, _ := url.Parse("http://203.0.113.10:8080")
for _, target := range []string{
"http://localhost:8000/",
"http://127.0.0.1:8000/",
"http://example.com/",
} {
request, _ := http.NewRequest("GET", target, nil)
discovered, err := http.ProxyFromEnvironment(request)
explicit, _ := http.ProxyURL(fixed)(request)
fmt.Println(target, discovered, explicit, err)
}
}
पर्यावरणाशी तुलना पाहायची असल्यास प्रक्रियेसाठी प्रॉक्सी चल सेट करून प्रोग्राम चालवा. प्रोग्राम केवळ निवडकांचे मूल्यमापन करतो; तो दस्तऐवजातील उदाहरणाच्या प्रॉक्सीशी किंवा कोणत्याही गंतव्याशी जोडत नाही.
पर्यावरणातून शोध घेणे आणि स्पष्ट निवडक या वेगळ्या नीती आहेत
ProxyFromEnvironment गंतव्याची स्कीम, पर्यावरण सेटिंग आणि बायपास नियम विचारात घेतो; त्यात लूपबॅकची विशेष हाताळणीही समाविष्ट आहे. ProxyURL त्या निवडकाला दिलेल्या प्रत्येक विनंतीसाठी पुरवलेला प्रॉक्सी URL परत करतो.
त्यामुळे स्पष्ट ProxyURL असलेला स्वतंत्र ट्रान्सपोर्ट स्थानिक गंतव्याची विनंती प्रॉक्सीतून पाठवू शकतो. प्रॉक्सी मागितलेल्या गंतव्यापर्यंत वैधरीत्या पोहोचू शकतो तेव्हाच हे उपयुक्त आहे. दूरच्या प्रॉक्सीचा localhost तुमच्या लॅपटॉपचा localhost नसतो, त्यामुळे मार्ग सक्तीचा केल्याने आपोआप उपयुक्त कनेक्टिव्हिटी चाचणी होत नाही.
प्रक्रियेने पर्यावरण कॅश करण्याआधी तपासा
प्रमाणित net/http चे पर्यावरणाधारित प्रॉक्सी कॉन्फिगरेशन पहिल्या वापरानंतर कॅश होते. नंतर त्याच चालू प्रोग्राममध्ये पर्यावरण चल बदलणे हा नव्या कॉन्फिगरेशनची चाचणी पुन्हा करण्याचा विश्वासार्ह मार्ग नाही. इच्छित मूल्यांसह नवीन प्रक्रिया सुरू करा किंवा ज्याचे वर्तन तुम्ही नियंत्रित करता असा स्पष्ट निवडक द्या.
हे लूपबॅक वर्तन Go 1.27.3 च्या प्रमाणित प्रॉक्सी निवडकाला लागू होते. इतर भाषा आणि HTTP क्लायंट localhost साठी वेगळे रूटिंग नियम वापरू शकतात.