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 שיקן אַ בקשה צו אַ לאָקאַלן ציל דורך אַ פּראָקסי. דאָס איז נוצלעך נאָר ווען דער פּראָקסי קען לעגיטים דערגרייכן דעם געבעטן ציל. localhost בײַ אַ ווײַטן פּראָקסי איז נישט localhost אויף אײַער לאַפּטאָפּ, אַזוי אַז צווינגען דעם וועג איז נישט אויטאָמאַטיש אַ נוצלעכער פֿאַרבינדונג־פּרוּוו.

קאָנטראָלירט איידער דער פּראָצעס לייגט זײַן סבֿיבֿה אין קאַש

די סבֿיבֿה־פּראָקסי־קאָנפֿיגוראַציע אין סטאַנדאַרט net/http ווערט געקאַשט נאָכן ערשטן באַניץ. שפּעטער טוישן אַ סבֿיבֿה־וואַריאַבלע אינעם זעלבן לויפֿנדיקן פּראָגראַם איז נישט קיין פֿאַרלאָזלעכער אופֿן צו איבערחזרן אַ פּרוּוו מיט אַ פֿרישער קאָנפֿיגוראַציע. הייבט אָן אַ נײַעם פּראָצעס מיט די בדעהדיקע ווערטן, אָדער גיט אַן אויסדריקלעכן אויסקלײַבער וועמענס אויפֿפֿירונג איר קאָנטראָלירט.

די דאָזיקע loopback־אויפֿפֿירונג גילט פֿאַרן סטאַנדאַרט־פּראָקסי־אויסקלײַבער אין Go 1.27.3. אַנדערע שפּראַכן און HTTP־קליענטן קענען ניצן אַנדערע localhost־רוטיררעגולעס.

פֿאַרבונדענע אַרטיקלען