በአካባቢ ላይ የተመሠረተው የGo ፕሮክሲ መራጭ ለlocalhost እና ለloopback 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 የመዳረሻውን ስኪም፣ የአካባቢ ቅንብሮች እና የፕሮክሲ ማለፊያ ደንቦችን፣ ለloopback ያለውን ልዩ አያያዝ ጨምሮ፣ ያገናዝባል። ProxyURL ወደዚያ መራጭ ለሚተላለፍ እያንዳንዱ ጥያቄ የተሰጠውን የፕሮክሲ URL ይመልሳል።

ስለዚህ ግልጽ ProxyURL ያለው ልዩ transport ወደ አካባቢ መዳረሻ የሚሄድ ጥያቄ በፕሮክሲ በኩል ሊልክ ይችላል። ይህ ጠቃሚ የሚሆነው ፕሮክሲው የተጠየቀውን መዳረሻ በሕጋዊ መንገድ ሊደርስበት ሲችል ብቻ ነው። የሩቅ ፕሮክሲ localhost የእርስዎ ላፕቶፕ localhost አይደለም፤ ስለዚህ መንገዱን ማስገደድ በራሱ ጠቃሚ የግንኙነት ሙከራ አይሆንም።

ሂደቱ አካባቢውን ከመሸጎጡ በፊት ይፈትሹ

የመደበኛው net/http የአካባቢ ፕሮክሲ ውቅር ከመጀመሪያው አጠቃቀም በኋላ በመሸጎጫ ይቀመጣል። በኋላ በዚያው እየሠራ ባለ ፕሮግራም ውስጥ የአካባቢ ተለዋዋጭ መቀየር አዲስ ውቅር ያለውን ሙከራ ለመድገም አስተማማኝ መንገድ አይደለም። በታሰቡት እሴቶች አዲስ ሂደት ይጀምሩ፣ ወይም ባህሪውን የሚቆጣጠሩትን ግልጽ መራጭ ይስጡ።

ይህ የloopback ባህሪ በGo 1.27.3 መደበኛ የፕሮክሲ መራጭ ላይ ይሠራል። ሌሎች ቋንቋዎች እና HTTP ደንበኞች ለlocalhost የተለያዩ የመንገድ ምርጫ ደንቦች ሊጠቀሙ ይችላሉ።

ተዛማጅ ጽሑፎች