Che cosa significa HTTP 000 in un test proxy con curl
000 non è uno stato HTTP inviato da un sito. Leggi il codice di uscita e l’errore di curl insieme al campo HTTP mostrato dal test.
Quando un test con curl mostra 000 come stato HTTP, non ha ottenuto un codice di risposta HTTP finale da riportare. Il sito non ha inviato un vero stato HTTP chiamato 000.
Registra anche l’errore
Questo esempio per una shell POSIX stampa il campo HTTP finale, il campo CONNECT e il codice di uscita del processo 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"
Sostituisci l’endpoint dell’esempio con il tuo proxy HTTP o un candidato della lista di proxy HTTP. Lascia show-error attivo: il messaggio di errore è spesso la parte più utile. Il campo CONNECT è pertinente quando si usa un tunnel; non è un secondo stato finale del sito.
Leggi i valori insieme
- Una connessione al proxy non riuscita può lasciare il campo HTTP a 000.
- Un timeout prima di ricevere una risposta può produrre lo stesso risultato.
- Una risposta CONNECT riuscita seguita da un errore TLS può mostrare connect=200 e http=000.
- Una risposta completa del sito, come 403, è diversa: esiste una vera risposta HTTP da esaminare.
Il codice di uscita esatto e il messaggio aiutano a circoscrivere la causa. Verifica se l’errore è avvenuto individuando il proxy, connettendosi alla sua porta, negoziando il tunnel o verificando la destinazione.
Non ridurre ogni risultato a un controllo dello stato
Uno script che salva soltanto http_code scarta l’errore di trasporto. Conserva anche il risultato del processo e un messaggio di errore ripulito dai dati sensibili. Viceversa, curl può completare un trasferimento con successo mentre il sito restituisce uno stato di errore, a meno di usare un’opzione fail appropriata. La risposta HTTP e il risultato di esecuzione del client rispondono a domande diverse.
Non cercare di correggere 000 disabilitando la verifica TLS o aggiungendo un header a caso. Prima individua l’operazione che non è mai arrivata a una risposta finale.