curl ਨਾਲ ਪ੍ਰਾਕਸੀ ਦੀ ਜਾਂਚ ਵਿੱਚ HTTP 000 ਦਾ ਕੀ ਮਤਲਬ ਹੈ?
000 ਵੈੱਬਸਾਈਟ ਵੱਲੋਂ ਭੇਜਿਆ HTTP ਸਟੇਟਸ ਨਹੀਂ ਹੈ। ਦਿਖਾਏ HTTP ਖੇਤਰ ਨਾਲ curl ਦਾ ਐਗਜ਼ਿਟ ਕੋਡ ਅਤੇ ਗਲਤੀ ਦਾ ਸੁਨੇਹਾ ਵੀ ਪੜ੍ਹੋ।
ਜਦੋਂ curl ਦੀ ਜਾਂਚ HTTP ਸਟੇਟਸ ਲਈ 000 ਦਿਖਾਉਂਦੀ ਹੈ, ਤਾਂ ਉਸ ਨੂੰ ਦੱਸਣ ਲਈ ਕੋਈ ਅੰਤਿਮ HTTP ਜਵਾਬ ਕੋਡ ਨਹੀਂ ਮਿਲਿਆ। ਵੈੱਬਸਾਈਟ ਨੇ ਅਸਲ ਵਿੱਚ 000 ਨਾਮ ਦਾ ਕੋਈ HTTP ਸਟੇਟਸ ਨਹੀਂ ਭੇਜਿਆ।
ਗਲਤੀ ਵੀ ਦਰਜ ਕਰੋ
POSIX ਸ਼ੈੱਲ ਦੀ ਇਹ ਮਿਸਾਲ ਅੰਤਿਮ HTTP ਖੇਤਰ, CONNECT ਖੇਤਰ ਅਤੇ curl ਪ੍ਰਕਿਰਿਆ ਦਾ ਐਗਜ਼ਿਟ ਕੋਡ ਪ੍ਰਿੰਟ ਕਰਦੀ ਹੈ:
curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"
ਮਿਸਾਲ ਦੇ ਐਂਡਪੁਆਇੰਟ ਦੀ ਥਾਂ ਆਪਣਾ HTTP ਪ੍ਰਾਕਸੀ ਜਾਂ HTTP ਪ੍ਰਾਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ ਕੋਈ ਸੰਭਾਵੀ ਚੋਣ ਰੱਖੋ। show-error ਚਾਲੂ ਰੱਖੋ: ਗਲਤੀ ਦਾ ਸੁਨੇਹਾ ਅਕਸਰ ਸਭ ਤੋਂ ਲਾਭਕਾਰੀ ਹਿੱਸਾ ਹੁੰਦਾ ਹੈ। ਟਨਲ ਵਰਤਣ ਵੇਲੇ CONNECT ਖੇਤਰ ਢੁਕਵਾਂ ਹੁੰਦਾ ਹੈ; ਇਹ ਵੈੱਬਸਾਈਟ ਦਾ ਦੂਜਾ ਅੰਤਿਮ ਸਟੇਟਸ ਨਹੀਂ ਹੈ।
ਮੁੱਲ ਇਕੱਠੇ ਪੜ੍ਹੋ
- ਪ੍ਰਾਕਸੀ ਨਾਲ ਕਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਣ ਉੱਤੇ HTTP ਖੇਤਰ 000 ਰਹਿ ਸਕਦਾ ਹੈ।
- ਜਵਾਬ ਮਿਲਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮਾਂ ਮੁੱਕਣ ਨਾਲ ਵੀ ਇਹੀ ਨਤੀਜਾ ਆ ਸਕਦਾ ਹੈ।
- ਸਫਲ CONNECT ਜਵਾਬ ਤੋਂ ਬਾਅਦ TLS ਦੀ ਅਸਫਲਤਾ ਹੋਵੇ ਤਾਂ connect=200 ਅਤੇ http=000 ਦਿਖ ਸਕਦਾ ਹੈ।
- ਵੈੱਬਸਾਈਟ ਦਾ ਪੂਰਾ ਜਵਾਬ, ਜਿਵੇਂ 403, ਵੱਖਰਾ ਮਾਮਲਾ ਹੈ: ਜਾਂਚਣ ਲਈ ਅਸਲ HTTP ਜਵਾਬ ਮੌਜੂਦ ਹੈ।
ਸਹੀ ਐਗਜ਼ਿਟ ਕੋਡ ਅਤੇ ਸੁਨੇਹਾ ਕਾਰਨ ਦਾ ਘੇਰਾ ਘਟਾਉਂਦੇ ਹਨ। ਵੇਖੋ ਅਸਫਲਤਾ ਪ੍ਰਾਕਸੀ ਲੱਭਣ, ਉਸ ਦੇ ਪੋਰਟ ਨਾਲ ਜੁੜਨ, ਟਨਲ ਬਾਰੇ ਗੱਲਬਾਤ ਜਾਂ ਮੰਜ਼ਿਲ ਦੀ ਤਸਦੀਕ ਦੌਰਾਨ ਹੋਈ ਸੀ।
ਹਰੇਕ ਨਤੀਜੇ ਨੂੰ ਸਿਰਫ਼ ਸਟੇਟਸ ਦੀ ਜਾਂਚ ਤੱਕ ਸੀਮਤ ਨਾ ਕਰੋ
ਸਿਰਫ਼ http_code ਸੰਭਾਲਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਟਰਾਂਸਪੋਰਟ ਦੀ ਗਲਤੀ ਗੁਆ ਦਿੰਦੀ ਹੈ। ਪ੍ਰਕਿਰਿਆ ਦਾ ਨਤੀਜਾ ਅਤੇ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਣਕਾਰੀ ਹਟਾਇਆ ਹੋਇਆ ਗਲਤੀ ਦਾ ਸੁਨੇਹਾ ਵੀ ਸੰਭਾਲੋ। ਉਲਟ ਪਾਸੇ, ਢੁਕਵਾਂ fail ਵਿਕਲਪ ਨਾ ਵਰਤੋ ਤਾਂ ਵੈੱਬਸਾਈਟ ਦੇ ਗਲਤੀ ਵਾਲਾ ਸਟੇਟਸ ਦੇਣ ਦੇ ਬਾਵਜੂਦ curl ਟਰਾਂਸਫਰ ਸਫਲਤਾ ਨਾਲ ਪੂਰਾ ਕਰ ਸਕਦਾ ਹੈ। HTTP ਜਵਾਬ ਅਤੇ ਕਲਾਇੰਟ ਚੱਲਣ ਦਾ ਨਤੀਜਾ ਵੱਖੋ-ਵੱਖ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੰਦੇ ਹਨ।
TLS ਤਸਦੀਕ ਬੰਦ ਕਰ ਕੇ ਜਾਂ ਕੋਈ ਬੇਤਰਤੀਬ ਹੈਡਰ ਜੋੜ ਕੇ 000 ਠੀਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਾ ਕਰੋ। ਪਹਿਲਾਂ ਪਤਾ ਕਰੋ ਕਿ ਕਿਹੜਾ ਕੰਮ ਅੰਤਿਮ ਜਵਾਬ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਿਆ।