Wanneer ’n curl-toets 000 as die HTTP-status druk, het curl nie ’n finale HTTP-antwoordkode gekry om te rapporteer nie. Die webwerf het nie ’n werklike HTTP-status genaamd 000 gestuur nie.

Teken ook die fout aan

Hierdie voorbeeld vir ’n POSIX-dop druk die finale HTTP-veld, die CONNECT-veld en die afsluitkode van die curl-proses:

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 die voorbeeld se eindpunt met jou HTTP-instaanbediener of ’n kandidaat uit die HTTP-instaanbedienerlys. Hou show-error aangeskakel: die foutboodskap is dikwels die nuttigste deel. Die CONNECT-veld is ter sake wanneer ’n tonnel gebruik word; dit is nie ’n tweede finale status van die webwerf nie.

Lees die waardes saam

  • ’n Mislukte verbinding met die instaanbediener kan die HTTP-veld op 000 laat staan.
  • ’n Uitteltyd voordat ’n antwoord ontvang word kan dieselfde veroorsaak.
  • ’n Suksesvolle CONNECT-antwoord gevolg deur ’n TLS-fout kan connect=200 en http=000 toon.
  • ’n Volledige webwerfantwoord soos 403 is anders: daar is ’n werklike HTTP-antwoord om te ondersoek.

Die presiese afsluitkode en boodskap beperk die moontlike oorsake. Kyk of die fout plaasgevind het toe die instaanbediener opgespoor is, toe die verbinding met sy poort oopgemaak is, tydens tonnelonderhandeling of by die verifiëring van die bestemming.

Moenie elke resultaat tot slegs ’n statuskontrole beperk nie

’n Skrip wat net http_code stoor, gooi die vervoerfout weg. Stoor ook die prosesresultaat en ’n foutboodskap waaruit sensitiewe besonderhede verwyder is. Omgekeerd kan curl ’n oordrag suksesvol voltooi terwyl die webwerf ’n foutstatus terugstuur, tensy jy ’n geskikte fail-opsie gebruik. Die HTTP-antwoord en die kliënt se uitvoeringsresultaat beantwoord verskillende vrae.

Moenie 000 probeer regmaak deur TLS-verifikasie af te skakel of ’n lukrake kopskrif by te voeg nie. Bepaal eers watter bewerking nooit by ’n finale antwoord uitgekom het nie.

Verwante artikels