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 માટે અલગ રૂટિંગ નિયમો વાપરી શકે છે.