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 ਲਈ ਵੱਖਰੇ ਰੂਟਿੰਗ ਨਿਯਮ ਵਰਤ ਸਕਦੇ ਹਨ।

ਸੰਬੰਧਿਤ ਲੇਖ