transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
transport.OnProxyConnectResponse = func(
    _ context.Context,
    _ *url.URL,
    _ *http.Request,
    response *http.Response,
) error {
    observeConnect(response.StatusCode, response.Header.Get("X-Proxy-Region"))
    return nil
}
client := &http.Client{Transport: transport}

context, net/http ਅਤੇ net/url ਵਰਤੋ; ਮਿਆਰੀ-ਡਿਫਾਲਟ ਕਿਸਮ ਦਾ ਦਾਅਵਾ ਮੰਨਦਾ ਹੈ ਕਿ ਉਹ ਟਰਾਂਸਪੋਰਟ ਸਥਾਪਿਤ ਰਹਿੰਦਾ ਹੈ। proxyURL ਪਾਰਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ observeConnect ਸਮਕਾਲੀਕਰਨ ਲਈ ਸੁਰੱਖਿਅਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ HTTPS ਜਾਂਚਾਂ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਉਸ ਪ੍ਰੌਕਸੀ URL ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ।

ਕਾਲਬੈਕ CONNECT ਨੂੰ ਸਫਲ 200 ਲਈ ਜਾਂਚਣ ਤੋਂ ਪਹਿਲਾਂ ਚੱਲਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ 407 ਵੀ ਦੇਖ ਸਕਦਾ ਹੈ। nil ਆਮ ਜਾਂਚ ਜਾਰੀ ਰੱਖਦਾ ਹੈ ਅਤੇ ਰੱਦ ਕੀਤੀ ਟਨਲ ਸਵੀਕਾਰ ਨਹੀਂ ਕਰਦਾ; ਗਲਤੀ ਬੇਨਤੀ ਨੂੰ ਅਸਫਲ ਕਰ ਦਿੰਦੀ ਹੈ।

X-Proxy-Region ਪ੍ਰਦਾਤਾ-ਪਰਿਭਾਸ਼ਿਤ ਉਦਾਹਰਨ ਹੈ। ਇੱਥੇ ਸਥਿਤੀ ਅਤੇ ਹੈਡਰ ਪੜ੍ਹੋ ਅਤੇ ਬਾਡੀ ਤੇ ਸਾਕਟ ਦੀ ਮਾਲਕੀ Transport ਨੂੰ ਛੱਡੋ, ਜੋ ਫਿਰ ਮੰਜ਼ਿਲ TLS ਸੰਭਾਲਦਾ ਹੈ।

ਇਹ ਨਵੀਂ ਟਨਲ ਸਥਾਪਨਾ ਦੇਖਦਾ ਹੈ, ਹਰ ਬੇਨਤੀ ਨਹੀਂ। ਦੁਬਾਰਾ ਵਰਤੇ ਕਨੈਕਸ਼ਨ ਵਿੱਚ ਨਵੀਂ CONNECT ਪ੍ਰਤੀਕਿਰਿਆ ਨਹੀਂ ਹੁੰਦੀ, ਅਤੇ ਵੈੱਬਸਾਈਟ ਦੀ ਪ੍ਰਤੀਕਿਰਿਆ ਦੇ ਹੈਡਰ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ।

ਸੰਬੰਧਿਤ ਲੇਖ