Kada test pomoću curl-a ispiše 000 kao HTTP status, nije dobio konačni kod HTTP odgovora koji bi mogao da prijavi. Sajt nije poslao stvarni HTTP status nazvan 000.

Zabilježite i greš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 primjer krajnje tačke svojim HTTP proxyjem ili kandidatom sa liste HTTP proxyja. Ostavite show-error uključen: poruka o grešci često je najkorisniji dio. Polje CONNECT važno je kada se koristi tunel; ono nije drugi konačni status sajta.

Čitajte vrijednosti zajedno

  • Neuspjelo povezivanje sa proxyjem može da ostavi HTTP polje na 000.
  • Istek vremena prije prijema odgovora može da da isti rezultat.
  • Uspješan CONNECT odgovor poslije kojeg slijedi TLS greška može da prikaže connect=200 i http=000.
  • Potpun odgovor sajta, poput 403, drugačiji je slučaj: postoji stvarni HTTP odgovor koji možete da ispitate.

Tačan izlazni kod i poruka sužavaju uzrok. Provjerite da li je greška nastala pri pronalaženju proxyja, povezivanju sa njegovim portom, pregovaranju o tunelu ili provjeri odredišta.

Ne svodite svaki rezultat samo na provjeru statusa

Skripta koja čuva samo http_code odbacuje transportnu grešku. Sačuvajte i rezultat procesa i poruku o grešci očišćenu od osjetljivih podataka. Obrnuto, curl može uspješno da završi prenos iako sajt vrati status greške, osim ako koristite odgovarajuću opciju fail. HTTP odgovor i rezultat izvršavanja klijenta odgovaraju na različita pitanja.

Ne pokušavajte da popravite 000 isključivanjem provjere TLS-a ili dodavanjem nasumičnog zaglavlja. Prvo utvrdite koja operacija nikada nije stigla do konačnog odgovora.

Povezani članci