Co znamená HTTP 000 při testu proxy pomocí curl
000 není stav HTTP odeslaný webem. Čtěte návratový kód a chybu curl společně s vypsaným polem HTTP.
Když test curl vypíše jako stav HTTP 000, nezískal konečný kód odpovědi HTTP, který by mohl uvést. Web neodeslal skutečný stav HTTP nazvaný 000.
Zachyťte také chybu
Tento příklad pro 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ázkový koncový bod svou HTTP proxy nebo kandidátem ze seznamu HTTP proxy. Nechte zapnuté show-error: chybová zpráva bývá nejužitečnější částí. Pole CONNECT je relevantní při použití tunelu; nejde o druhý konečný stav z webu.
Čtěte hodnoty společně
- Neúspěšné připojení k proxy může ponechat pole HTTP na hodnotě 000.
- Vypršení časového limitu před přijetím odpovědi může způsobit totéž.
- Úspěšná odpověď CONNECT následovaná chybou TLS může vést k hodnotám connect=200 a http=000.
- Úplná odpověď webu, například 403, je jiný případ: existuje skutečná odpověď HTTP k prozkoumání.
Přesný návratový kód a zpráva pomohou zúžit příčinu. Zjistěte, zda chyba nastala při hledání proxy, připojování k jejímu portu, vyjednávání tunelu, nebo ověřování cíle.
Neredukujte každý výsledek na pouhou kontrolu stavu
Skript, který ukládá pouze http_code, zahazuje chybu přenosu. Uložte také výsledek procesu a chybovou zprávu zbavenou citlivých údajů. Naopak curl může úspěšně dokončit přenos, i když web vrátí chybový stav, pokud nepoužijete vhodnou volbu fail. Odpověď HTTP a výsledek běhu klienta odpovídají na různé otázky.
Nesnažte se opravit 000 vypnutím ověřování TLS nebo přidáním náhodné hlavičky. Nejprve určete, která operace vůbec nedospěla ke konečné odpovědi.