Go keskkonnapõhisel puhverserveri valijal on sisseehitatud erand localhosti ja loopback-IP-sihtkohtade jaoks. NO_PROXY tühjendamine seda erandit ei eemalda. Seetõttu võib kohalik test minna otse, samal ajal kui päring avalikule hostinimele kasutab puhverserverit ootuspäraselt.

Reegel puudutab päringu sihtkohta. See ei takista kasutamast puhverserveri kuulajat, mille enda aadress on 127.0.0.1.

Uuri valijat ilma päringut saatmata

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

Kui soovid näha võrdlust keskkonnaga, käivita programm nii, et protsessi puhverserverimuutujad on määratud. Programm üksnes hindab valijaid; see ei loo ühendust dokumentatsiooninäite puhverserveri ega ühegi sihtkohaga.

Keskkonnast tuvastamine ja selgesõnaline valija järgivad erinevaid reegleid

ProxyFromEnvironment arvestab sihtkoha skeemi, keskkonnaseadistusi ja möödapääsureegleid, sealhulgas loopback-aadresside erikäsitlust. ProxyURL tagastab antud puhverserveri URL-i iga sellele valijale edastatud päringu jaoks.

Seega saab eraldi transport selgesõnalise ProxyURL-iga saata kohaliku sihtkoha päringu puhverserveri kaudu. Sellest on kasu ainult siis, kui puhverserver saab taotletud sihtkohta õiguspäraselt jõuda. Kaugpuhverserveri localhost ei ole sinu sülearvuti localhost, seega ei ole marsruudi pealesundimine automaatselt kasulik ühenduvustest.

Kontrolli enne, kui protsess on keskkonna vahemällu salvestanud

Standardse net/http keskkonnapõhine puhverserveri seadistus salvestatakse pärast esimest kasutust vahemällu. Hiljem samas töötavas programmis keskkonnamuutuja muutmine ei ole usaldusväärne viis värske seadistusega testi korrata. Käivita uus protsess soovitud väärtustega või määra selgesõnaline valija, mille käitumist juhid ise.

See loopback-käitumine kehtib Go 1.27.3 standardse puhverserveri valija kohta. Teised keeled ja HTTP-kliendid võivad kasutada teistsuguseid localhosti marsruutimisreegleid.

Seotud artiklid