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 को इस डायग्नोस्टिक को किसी अन्य विरासत में मिले प्रॉक्सी से होकर भेजने से रोकता है। कमांड जानबूझकर --fail छोड़ती है ताकि HTTP त्रुटि दस्तावेज़ रखा जा सके।

बिना प्रमाणीकरण का प्रयास जाँची जा रही विफलता तक पहुँचने से पहले 407 पर रुक सकता है। प्रमाणित अनुरोध दोहराते समय प्रॉक्सी की इच्छित प्रमाणीकरण व्यवस्था का उपयोग करें।

यह विफलता प्रतिक्रियाओं की जाँच के लिए है। यदि प्रॉक्सी 2xx लौटाता है तो कनेक्शन साधारण HTTP body स्थानांतरण के बजाय एक टनल बन जाता है। यह कस्टम-विधि डायग्नोस्टिक गंतव्य का TLS आदान-प्रदान शुरू नहीं करता और स्वीकृत खुली टनल पर अपनी समय सीमा तक पहुँच सकता है।

वास्तविक HTTPS फ़ेच के लिए सामान्य --proxy अनुरोध प्रवाह का उपयोग करें। डायग्नोस्टिक की स्थिति और body को उनके विशिष्ट प्रॉक्सी और लक्ष्य के साथ रखें।

संबंधित लेख