Kaj pomeni HTTP 000 pri preizkusu posrednika s curl
000 ni status HTTP, ki ga pošlje spletno mesto. Izhodno kodo in napako curl berite skupaj z izpisanim poljem HTTP.
Ko preizkus curl kot status HTTP izpiše 000, ni pridobil končne kode odgovora HTTP, ki bi jo lahko sporočil. Spletno mesto ni poslalo dejanskega statusa HTTP z imenom 000.
Zabeležite tudi napako
Ta primer za lupino POSIX izpiše končno polje HTTP, polje CONNECT in izhodno kodo procesa 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"
Vzorčno končno točko zamenjajte s svojim posrednikom HTTP ali kandidatom s seznama posrednikov HTTP. Pustite show-error vklopljen: sporočilo o napaki je pogosto najuporabnejši del. Polje CONNECT je pomembno pri uporabi tunela; ni drugi končni status spletnega mesta.
Vrednosti berite skupaj
- Neuspešna povezava s posrednikom lahko pusti polje HTTP pri 000.
- Časovna omejitev, ki poteče pred prejemom odgovora, lahko povzroči enako.
- Uspešen odgovor CONNECT, ki mu sledi napaka TLS, lahko pokaže connect=200 in http=000.
- Popoln odgovor spletnega mesta, kot je 403, je drugačen: na voljo je dejanski odgovor HTTP, ki ga lahko pregledate.
Natančna izhodna koda in sporočilo zožita vzrok. Preverite, ali je napaka nastala pri iskanju posrednika, povezovanju z njegovimi vrati, pogajanju o tunelu ali preverjanju cilja.
Ne omejite vsakega rezultata samo na preverjanje statusa
Skript, ki shrani samo http_code, zavrže napako prenosa. Shranite tudi rezultat procesa in sporočilo o napaki z odstranjenimi občutljivimi podatki. Obratno lahko curl uspešno dokonča prenos, čeprav spletno mesto vrne status napake, razen če uporabite ustrezno možnost fail. Odgovor HTTP in rezultat izvajanja odjemalca odgovarjata na različni vprašanji.
Ne poskušajte odpraviti 000 z izklopom preverjanja TLS ali dodajanjem naključne glave. Najprej ugotovite, katera operacija sploh ni prišla do končnega odgovora.