curl ilə uğursuz proxy CONNECT cavab gövdəsini yoxlamaq
Düzgün qurulmuş diaqnostik CONNECT sorğusunu birbaşa HTTP proxy-yə göndərin və HTTP uğursuzluq başlıqlarını və gövdəsini ayrıca saxlayın.
CONNECT-i rədd edən proxy öz siyasətini və ya sonrakı bağlantı uğursuzluğunu izah edən HTTP xəta sənədi qaytara bilər. Adi HTTP proxy-yə qarşı icazəli diaqnostika üçün curl həmin sorğunu birbaşa göndərib cavabı saxlaya bilər:
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/
Son URL proxy dinləyicisinə ünvanlanır. İcazəli ictimai proxy müqayisəsi üçün HTTP proxy siyahısı həmin dinləyici URL-i üçün namizədlər təqdim edir. --request metod tokenini verir; --request-target CONNECT səlahiyyətini verir. Onları ayrı saxlamaq CONNECT service.example:443 HTTP/1.1 yaradır.
Boş proxy seçimi curl-un bu diaqnostikanı başqa miras qalmış proxy vasitəsilə yönləndirməsinin qarşısını alır. Əmr HTTP xəta sənədinin saxlanması üçün --fail-i qəsdən buraxır.
Autentifikasiyasız cəhd araşdırılan uğursuzluğa çatmadan 407-də dayana bilər. Autentifikasiyalı sorğunu təkrar yaradarkən proxy-nin nəzərdə tutduğu autentifikasiya quruluşundan istifadə edin.
Bu, uğursuzluq cavablarının yoxlanması üçündür. Proxy 2xx qaytararsa, bağlantı adi HTTP gövdə ötürülməsi yerinə tunelə çevrilir. Bu fərdi metodlu diaqnostika təyinatın TLS mübadiləsini başlatmır və qəbul edilmiş açıq tuneldə vaxt limitinə çata bilər.
Faktiki HTTPS fetch üçün normal --proxy sorğu axınından istifadə edin. Diaqnostik statusu və gövdəni öz proxy və hədəfi ilə birlikdə saxlayın.