TCP ਕਨੈਕਸ਼ਨ ਸਫਲ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪ੍ਰੌਕਸੀ CONNECT ਟਾਈਮਆਊਟ
ਇਹ ਮੰਨਣ ਦੀ ਬਜਾਏ ਕਿ ਪੂਰਾ ਹੋਇਆ TCP ਕਨੈਕਸ਼ਨ ਟਨਲ ਸੈੱਟਅੱਪ ਵੀ ਪੂਰਾ ਕਰ ਚੁੱਕਾ ਹੈ, CONNECT ਦੌਰਾਨ ਸਰਗਰਮ ਟਾਈਮਆਊਟ ਦੀ ਪਛਾਣ ਕਰੋ।
ਕਲਾਇੰਟ ਦੇ ਪ੍ਰੌਕਸੀ ਨਾਲ ਜੁੜਨ ਸਮੇਂ ਹੀ TCP ਕਨੈਕਸ਼ਨ ਟਾਈਮਆਊਟ ਆਪਣਾ ਕੰਮ ਕਰ ਚੁੱਕਾ ਹੁੰਦਾ ਹੈ। ਅਗਲੀ ਉਡੀਕ—ਪੂਰਨ CONNECT ਜਵਾਬ ਪ੍ਰਾਪਤ ਕਰਨਾ—ਕਿਸੇ ਹੋਰ ਟਾਈਮਰ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਹੋ ਸਕਦੀ ਹੈ।
ਪ੍ਰੌਕਸੀ ਸ਼ਾਇਦ ਅਜੇ ਵੀ ਉੱਪਰ ਵੱਲ ਜੁੜ ਰਹੀ ਹੈ, ਪ੍ਰਮਾਣਿਕਤਾ ਸੁਨੇਹਿਆਂ ਦਾ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਕਰ ਰਹੀ ਹੈ ਜਾਂ ਕਿਸੇ ਹੋਰ ਸੇਵਾ ਦੀ ਉਡੀਕ ਕਰ ਰਹੀ ਹੈ। ਵੈੱਬਸਾਈਟ ਦਾ ਆਮ ਜਵਾਬ ਅਜੇ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਇਆ।
| ਆਖਰੀ ਪੂਰਾ ਹੋਇਆ ਕਦਮ | ਅਜੇ ਕੀ ਉਡੀਕ ਰਿਹਾ ਹੈ? |
|---|---|
| TCP ਪ੍ਰੌਕਸੀ ਨਾਲ ਜੁੜਿਆ | CONNECT ਸਵੀਕ੍ਰਿਤੀ ਸਮੇਤ ਪ੍ਰੌਕਸੀ ਹੈਂਡਸ਼ੇਕ |
| CONNECT ਸਵੀਕਾਰ ਹੋਇਆ | ਟਾਰਗੈਟ ਦੇ ਵਰਤਣ 'ਤੇ ਮੰਜ਼ਿਲ ਦਾ TLS |
| ਮੰਜ਼ਿਲ ਦੀ ਬੇਨਤੀ ਭੇਜੀ ਗਈ | ਮੰਜ਼ਿਲ ਦਾ ਜਵਾਬ |
ਉਹ ਟਾਈਮਰ ਲੱਭੋ ਜੋ ਕਨੈਕਟਰ ਵੱਲੋਂ ਉਹ ਹੈਂਡਸ਼ੇਕ ਪੜ੍ਹਦਿਆਂ ਤੇ ਲਿਖਦਿਆਂ ਸਰਗਰਮ ਹੈ। “response timeout” ਨਾਮਕ ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਇਦ ਰੂਟ ਸਥਾਪਿਤ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਲਾਗੂ ਹੋਵੇ। HttpClient 5 ਵਿੱਚ, ConnectionConfig ਅਤੇ ਇਸਦੇ ਸਾਕਟ ਟਾਈਮਆਊਟ, TLS ਹੈਂਡਸ਼ੇਕ ਸੰਰਚਨਾ ਅਤੇ ਬੇਨਤੀ-ਪੱਧਰੀ ਜਵਾਬ ਟਾਈਮਆਊਟ ਵਿੱਚ ਫ਼ਰਕ ਕਰੋ। ਸੰਬੰਧਿਤ ਕਨੈਕਸ਼ਨ ਸੰਰਚਨਾ ਨੂੰ ਉਸ ਮੈਨੇਜਰ ਰਾਹੀਂ ਲਾਗੂ ਕਰੋ ਜੋ ਅਸਲ ਕਲਾਇੰਟ ਵਰਤਦਾ ਹੈ। ਪੁਰਾਣੀਆਂ Apache HttpClient ਪੀੜ੍ਹੀਆਂ ਵੱਖਰੇ API ਵਰਤਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਪੁਰਾਣਾ ਸਨਿੱਪਟ ਇਹਨਾਂ ਜ਼ਿੰਮੇਵਾਰੀਆਂ ਦਾ ਭਰੋਸੇਯੋਗ ਨਕਸ਼ਾ ਨਹੀਂ ਹੈ।
ਅੰਤਿਮ CONNECT ਇਨਕਾਰ ਨੂੰ ਪ੍ਰੌਕਸੀ ਦਾ ਜਵਾਬ ਮੰਨੋ। ਸਫਲ ਜਵਾਬ ਤੋਂ ਬਾਅਦ TLS ਦਾ ਰੁਕਣਾ ਫੇਲ੍ਹਤਾ ਦਾ ਦੂਜਾ ਪੜਾਅ ਹੈ। “TCP ਜੁੜਿਆ; ਸੈੱਟਅੱਪ ਸਮਾਂ-ਸੀਮਾ ਤੋਂ ਪਹਿਲਾਂ ਕੋਈ ਪੂਰਾ CONNECT ਜਵਾਬ ਨਹੀਂ” ਆਮ ਪ੍ਰੌਕਸੀ ਟਾਈਮਆਊਟ ਨਾਲੋਂ ਸਮੱਸਿਆ ਦਾ ਵਧੇਰੇ ਸਹੀ ਵਰਣਨ ਕਰਦਾ ਹੈ।
ਇੱਕ ਸਮੁੱਚੀ ਸਮਾਂ-ਸੀਮਾ ਇਹਨਾਂ ਪੜਾਅ-ਸੀਮਾਵਾਂ ਦੇ ਨਾਲ ਕਾਲਰ ਦੀ ਉਡੀਕ ਨੂੰ ਸੀਮਿਤ ਕਰ ਸਕਦੀ ਹੈ। ਜਦੋਂ ਇਹ ਖ਼ਤਮ ਹੁੰਦੀ ਹੈ, ਅਗਲੀ ਕੋਸ਼ਿਸ਼ ਵੱਲੋਂ ਕਨੈਕਸ਼ਨ ਸਮਰੱਥਾ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਕਲਾਇੰਟ ਸਮਰਥਿਤ ਜੀਵਨ-ਚੱਕਰ ਰਾਹੀਂ ਕਾਰਵਾਈ ਰੱਦ ਜਾਂ ਬੰਦ ਕਰੋ।