Τι σημαίνει HTTP 000 σε μια δοκιμή proxy με curl
Το 000 δεν είναι κατάσταση HTTP που στέλνει ένας ιστότοπος. Διαβάστε τον κωδικό εξόδου και το σφάλμα του curl μαζί με το πεδίο HTTP.
Όταν μια δοκιμή curl εμφανίζει 000 ως κατάσταση HTTP, δεν έχει λάβει τελικό κωδικό απόκρισης HTTP για να αναφέρει. Ο ιστότοπος δεν έστειλε πραγματική κατάσταση HTTP με το όνομα 000.
Καταγράψτε και το σφάλμα
Αυτό το παράδειγμα για κέλυφος POSIX εμφανίζει το τελικό πεδίο HTTP, το πεδίο CONNECT και τον κωδικό εξόδου της διεργασίας 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"
Αντικαταστήστε το τελικό σημείο του παραδείγματος με τον HTTP proxy σας ή έναν υποψήφιο από τη λίστα HTTP proxy. Διατηρήστε ενεργό το show-error: το μήνυμα σφάλματος είναι συχνά το χρησιμότερο στοιχείο. Το πεδίο CONNECT έχει σημασία όταν χρησιμοποιείται σήραγγα· δεν είναι δεύτερη τελική κατάσταση του ιστοτόπου.
Διαβάστε τις τιμές μαζί
- Μια αποτυχημένη σύνδεση στον proxy μπορεί να αφήσει το πεδίο HTTP στο 000.
- Μια λήξη χρονικού ορίου πριν από τη λήψη απόκρισης μπορεί να έχει το ίδιο αποτέλεσμα.
- Μια επιτυχής απόκριση CONNECT ακολουθούμενη από αποτυχία TLS μπορεί να εμφανίσει connect=200 και http=000.
- Μια πλήρης απόκριση του ιστοτόπου, όπως η 403, είναι διαφορετική: υπάρχει πραγματική απόκριση HTTP για εξέταση.
Ο ακριβής κωδικός εξόδου και το μήνυμα περιορίζουν τα πιθανά αίτια. Ελέγξτε αν η αποτυχία συνέβη κατά τον εντοπισμό του proxy, τη σύνδεση στη θύρα του, τη διαπραγμάτευση της σήραγγας ή την επαλήθευση του προορισμού.
Μην περιορίζετε κάθε αποτέλεσμα σε έναν έλεγχο κατάστασης
Ένα σενάριο που αποθηκεύει μόνο το http_code χάνει το σφάλμα μεταφοράς. Αποθηκεύστε επίσης το αποτέλεσμα της διεργασίας και ένα μήνυμα σφάλματος από το οποίο έχουν αφαιρεθεί ευαίσθητα στοιχεία. Αντίστροφα, το curl μπορεί να ολοκληρώσει επιτυχώς μια μεταφορά ενώ ο ιστότοπος επιστρέφει κατάσταση σφάλματος, εκτός αν χρησιμοποιήσετε κατάλληλη επιλογή fail. Η απόκριση HTTP και το αποτέλεσμα εκτέλεσης του πελάτη απαντούν σε διαφορετικά ερωτήματα.
Μην προσπαθήσετε να διορθώσετε το 000 απενεργοποιώντας την επαλήθευση TLS ή προσθέτοντας μια τυχαία κεφαλίδα. Πρώτα εντοπίστε ποια λειτουργία δεν έφτασε ποτέ σε τελική απόκριση.