curl ਨਾਲ ਅਸਫਲ proxy CONNECT ਜਵਾਬ ਦਾ body ਜਾਂਚੋ
ਸਹੀ ਢੰਗ ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਡਾਇਗਨੋਸਟਿਕ CONNECT ਸਿੱਧਾ HTTP ਪ੍ਰੌਕਸੀ ਨੂੰ ਭੇਜੋ ਅਤੇ HTTP ਅਸਫਲਤਾ ਦੇ ਹੈਡਰ ਤੇ body ਵੱਖਰੇ ਸੰਭਾਲੋ।
CONNECT ਨੂੰ ਨਕਾਰਨ ਵਾਲੀ ਪ੍ਰੌਕਸੀ ਇੱਕ HTTP ਗਲਤੀ ਦਸਤਾਵੇਜ਼ ਵਾਪਸ ਕਰ ਸਕਦੀ ਹੈ ਜੋ ਉਸਦੀ ਨੀਤੀ ਜਾਂ ਅਗਲੇ ਕਨੈਕਸ਼ਨ ਦੀ ਅਸਫਲਤਾ ਦੱਸਦਾ ਹੈ। ਆਮ HTTP ਪ੍ਰੌਕਸੀ ਵਿਰੁੱਧ ਅਧਿਕਾਰਤ ਡਾਇਗਨੋਸਟਿਕ ਲਈ curl ਉਹ ਬੇਨਤੀ ਸਿੱਧੀ ਭੇਜ ਸਕਦਾ ਹੈ ਅਤੇ ਜਵਾਬ ਸੰਭਾਲ ਸਕਦਾ ਹੈ:
curl --proxy '' --http1.1 --max-time 10 \
--request CONNECT \
--request-target service.example:443 \
--header 'Host: service.example:443' \
--dump-header tunnel.headers \
--output tunnel.body \
http://proxy.example:8080/
ਅੰਤਿਮ URL ਪ੍ਰੌਕਸੀ ਸਰੋਤੇ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਦਾ ਹੈ। ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਪ੍ਰੌਕਸੀ ਤੁਲਨਾ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਉਸ ਸਰੋਤਾ URL ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ। --request ਢੰਗ ਟੋਕਨ ਦਿੰਦਾ ਹੈ; --request-target CONNECT ਅਧਿਕਾਰ ਦਿੰਦਾ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਨਾਲ CONNECT service.example:443 HTTP/1.1 ਬਣਦਾ ਹੈ।
ਖਾਲੀ ਪ੍ਰੌਕਸੀ ਵਿਕਲਪ curl ਨੂੰ ਇਹ ਡਾਇਗਨੋਸਟਿਕ ਕਿਸੇ ਹੋਰ ਵਿਰਾਸਤੀ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਭੇਜਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। HTTP ਗਲਤੀ ਦਸਤਾਵੇਜ਼ ਰੱਖਿਆ ਜਾ ਸਕੇ ਇਸ ਲਈ ਕਮਾਂਡ ਜਾਣ-ਬੁੱਝ ਕੇ --fail ਛੱਡਦੀ ਹੈ।
ਬਿਨਾਂ ਪ੍ਰਮਾਣਿਕਤਾ ਵਾਲੀ ਕੋਸ਼ਿਸ਼ ਜਾਂਚੀ ਜਾ ਰਹੀ ਅਸਫਲਤਾ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ 407 'ਤੇ ਰੁਕ ਸਕਦੀ ਹੈ। ਪ੍ਰਮਾਣਿਤ ਬੇਨਤੀ ਦੁਬਾਰਾ ਬਣਾਉਂਦੇ ਸਮੇਂ ਪ੍ਰੌਕਸੀ ਦੀ ਇੱਛਤ ਪ੍ਰਮਾਣਿਕਤਾ ਵਿਵਸਥਾ ਵਰਤੋ।
ਇਹ ਅਸਫਲਤਾ ਜਵਾਬਾਂ ਦੀ ਜਾਂਚ ਲਈ ਹੈ। ਜੇ ਪ੍ਰੌਕਸੀ 2xx ਵਾਪਸ ਕਰਦੀ ਹੈ ਤਾਂ ਕਨੈਕਸ਼ਨ ਆਮ HTTP body ਟ੍ਰਾਂਸਫਰ ਦੀ ਥਾਂ ਇੱਕ ਸੁਰੰਗ ਬਣ ਜਾਂਦਾ ਹੈ। ਇਹ ਕਸਟਮ-ਢੰਗ ਡਾਇਗਨੋਸਟਿਕ ਮੰਜ਼ਿਲ ਦੇ TLS ਵਟਾਂਦਰੇ ਨੂੰ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਸਵੀਕਾਰੀ ਖੁੱਲ੍ਹੀ ਸੁਰੰਗ 'ਤੇ ਆਪਣੀ ਸਮਾਂ ਸੀਮਾ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।
ਅਸਲ HTTPS ਲੈਣ ਲਈ ਆਮ --proxy ਬੇਨਤੀ ਪ੍ਰਵਾਹ ਵਰਤੋ। ਡਾਇਗਨੋਸਟਿਕ ਦੀ ਸਥਿਤੀ ਅਤੇ body ਨੂੰ ਉਹਨਾਂ ਦੀ ਖਾਸ ਪ੍ਰੌਕਸੀ ਅਤੇ ਟਾਰਗੇਟ ਨਾਲ ਰੱਖੋ।