Als een curl-test 000 als HTTP-status toont, heeft curl geen definitieve HTTP-responscode ontvangen om te melden. De website heeft geen echte HTTP-status met de naam 000 verstuurd.

Leg ook de fout vast

Dit voorbeeld voor een POSIX-shell drukt het definitieve HTTP-veld, het CONNECT-veld en de exitcode van het curl-proces af:

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"

Vervang het voorbeeldendpoint door je HTTP-proxy of een kandidaat uit de HTTP-proxylijst. Houd show-error ingeschakeld: de foutmelding is vaak het nuttigste onderdeel. Het CONNECT-veld is relevant bij een tunnel; het is geen tweede definitieve status van de website.

Lees de waarden samen

  • Een mislukte verbinding met de proxy kan het HTTP-veld op 000 laten staan.
  • Een time-out voordat een antwoord is ontvangen kan hetzelfde veroorzaken.
  • Een geslaagd CONNECT-antwoord gevolgd door een TLS-fout kan connect=200 en http=000 opleveren.
  • Een volledig ontvangen websiteantwoord, zoals 403, is iets anders: er is een echt HTTP-antwoord om te onderzoeken.

De precieze exitcode en melding helpen de oorzaak te beperken. Ga na of het misging bij het vinden van de proxy, het verbinden met de poort, het onderhandelen over de tunnel of het verifiëren van de bestemming.

Beperk niet elk resultaat tot een statuscontrole

Een script dat alleen http_code opslaat, gooit de transportfout weg. Bewaar ook het procesresultaat en een foutmelding waaruit gevoelige gegevens zijn verwijderd. Omgekeerd kan curl een overdracht met succes afronden terwijl de website een foutstatus terugstuurt, tenzij je een geschikte fail-optie gebruikt. Het HTTP-antwoord en het uitvoeringsresultaat van de client beantwoorden verschillende vragen.

Probeer 000 niet op te lossen door TLS-verificatie uit te zetten of een willekeurige header toe te voegen. Bepaal eerst welke bewerking nooit een definitief antwoord heeft bereikt.

Gerelateerde artikelen