Gojev izbirnik posredniškega strežnika iz okolja ima vgrajeno izjemo za localhost in ciljne naslove IP povratne zanke. Izpraznitev NO_PROXY te izjeme ne odstrani. Zato lahko lokalni preizkus poteka neposredno, zahteva do javnega imena gostitelja pa uporablja posredniški strežnik po pričakovanjih.

Pravilo se nanaša na cilj zahteve. Ne preprečuje uporabe poslušalca posredniškega strežnika, katerega lastni naslov je 127.0.0.1.

Preverite izbirnik brez pošiljanja zahteve

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)
    }
}

Če želite opazovati primerjavo z okoljem, program zaženite z nastavljenimi posredniškimi spremenljivkami za proces. Program samo ovrednoti izbirnike; ne poveže se s posredniškim strežnikom iz dokumentacije ali s katerim koli ciljem.

Odkrivanje iz okolja in izrecni izbirnik sta različni politiki

ProxyFromEnvironment upošteva shemo cilja, okoljske nastavitve in pravila za obhod, vključno s posebno obravnavo povratne zanke. ProxyURL za vsako zahtevo, predano temu izbirniku, vrne podani URL posredniškega strežnika.

Zato lahko namenski transport z izrecnim ProxyURL pošlje zahtevo do lokalnega cilja prek posredniškega strežnika. To je koristno le, če lahko posredniški strežnik upravičeno doseže zahtevani cilj. localhost oddaljenega posredniškega strežnika ni localhost vašega prenosnika, zato vsiljena pot ni samodejno koristen preizkus povezljivosti.

Preverite, preden proces predpomni okolje

Nastavitev posredniškega strežnika iz okolja v standardnem net/http se po prvi uporabi predpomni. Poznejša sprememba okoljske spremenljivke v istem delujočem programu ni zanesljiv način za ponovitev preizkusa s svežo konfiguracijo. Zaženite nov proces z želenimi vrednostmi ali podajte izrecni izbirnik, katerega delovanje nadzorujete.

To vedenje povratne zanke velja za standardni Gojev izbirnik posredniškega strežnika v različici 1.27.3. Drugi jeziki in odjemalci HTTP lahko uporabljajo drugačna pravila usmerjanja za localhost.

Sorodni članki