Kada test curlom ispiše 000 kao HTTP status, nije dobio konačni kod HTTP odgovora koji bi mogao prijaviti. Web-stranica nije poslala stvarni HTTP status nazvan 000.

Zabilježite i pogrešku

Ovaj primjer za POSIX ljusku ispisuje konačno HTTP polje, polje CONNECT i izlazni kod 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"

Zamijenite oglednu krajnju točku svojim HTTP proxyjem ili kandidatom s popisa HTTP proxyja. Ostavite show-error uključenim: poruka o pogrešci često je najkorisniji dio. Polje CONNECT važno je kada se koristi tunel; ono nije drugi konačni status web-stranice.

Čitajte vrijednosti zajedno

  • Neuspjelo povezivanje s proxyjem može ostaviti HTTP polje na 000.
  • Istek vremena prije primitka odgovora može dati isti rezultat.
  • Uspješan CONNECT odgovor nakon kojeg slijedi TLS pogreška može prikazati connect=200 i http=000.
  • Potpun odgovor web-stranice, primjerice 403, drugačiji je slučaj: postoji stvarni HTTP odgovor koji možete pregledati.

Točan izlazni kod i poruka sužavaju uzrok. Provjerite je li pogreška nastala pri pronalaženju proxyja, povezivanju s njegovim portom, pregovaranju tunela ili provjeri odredišta.

Nemojte svaki rezultat svesti samo na provjeru statusa

Skripta koja sprema samo http_code odbacuje pogrešku prijenosa. Spremite i rezultat procesa te poruku o pogrešci očišćenu od osjetljivih podataka. Obrnuto, curl može uspješno dovršiti prijenos iako web-stranica vrati status pogreške, osim ako koristite odgovarajuću opciju fail. HTTP odgovor i rezultat izvršavanja klijenta odgovaraju na različita pitanja.

Nemojte pokušavati popraviti 000 isključivanjem provjere TLS-a ili dodavanjem nasumičnog zaglavlja. Najprije utvrdite koja operacija nikad nije stigla do konačnog odgovora.

Povezani članci