Čo znamená HTTP 000 pri teste proxy pomocou curl
000 nie je stav HTTP odoslaný webom. Čítajte návratový kód a chybu curl spolu s vypísaným poľom HTTP.
Keď test curl vypíše ako stav HTTP 000, nezískal konečný kód odpovede HTTP, ktorý by mohol uviesť. Web neodoslal skutočný stav HTTP s názvom 000.
Zaznamenajte aj chybu
Tento príklad pre shell POSIX vypíše konečné pole HTTP, pole CONNECT a návratový kód procesu 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"
Nahraďte ukážkový koncový bod svojou HTTP proxy alebo kandidátom zo zoznamu HTTP proxy. Nechajte zapnuté show-error: chybová správa býva najužitočnejšia. Pole CONNECT je relevantné pri použití tunela; nie je to druhý konečný stav z webu.
Čítajte hodnoty spolu
- Neúspešné pripojenie k proxy môže ponechať pole HTTP na hodnote 000.
- Vypršanie časového limitu pred prijatím odpovede môže spôsobiť to isté.
- Úspešná odpoveď CONNECT nasledovaná chybou TLS môže viesť k hodnotám connect=200 a http=000.
- Úplná odpoveď webu, napríklad 403, je iný prípad: existuje skutočná odpoveď HTTP na preskúmanie.
Presný návratový kód a správa pomôžu zúžiť príčinu. Zistite, či chyba nastala pri hľadaní proxy, pripájaní k jej portu, vyjednávaní tunela alebo overovaní cieľa.
Neobmedzujte každý výsledok na samotnú kontrolu stavu
Skript, ktorý ukladá len http_code, zahadzuje chybu prenosu. Uložte aj výsledok procesu a chybovú správu zbavenú citlivých údajov. Naopak, curl môže úspešne dokončiť prenos, aj keď web vráti chybový stav, pokiaľ nepoužijete vhodnú voľbu fail. Odpoveď HTTP a výsledok behu klienta odpovedajú na rôzne otázky.
Nesnažte sa opraviť 000 vypnutím overovania TLS alebo pridaním náhodnej hlavičky. Najprv určte, ktorá operácia vôbec nedospela ku konečnej odpovedi.