Что означает HTTP 000 при проверке прокси через curl
000 — не HTTP-статус, присланный сайтом. Читайте код завершения и ошибку curl вместе с выведенным HTTP-полем.
Если при проверке curl выводит HTTP-статус 000, значит, он не получил окончательный код 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-прокси или кандидатом из списка HTTP-прокси. Оставьте show-error включённым: сообщение об ошибке часто полезнее всего. Поле CONNECT имеет значение при использовании туннеля; это не второй итоговый статус сайта.
Читайте значения в совокупности
- Неудачное подключение к прокси может оставить в HTTP-поле 000.
- Тайм-аут до получения ответа может дать тот же результат.
- Успешный ответ CONNECT, за которым следует ошибка TLS, может дать connect=200 и http=000.
- Полностью полученный ответ сайта, например 403, — другая ситуация: есть настоящий HTTP-ответ, который можно изучить.
Точный код завершения и сообщение сужают круг причин. Выясните, возникла ли ошибка при поиске прокси, подключении к его порту, согласовании туннеля или проверке назначения.
Не сводите каждый результат к проверке статуса
Скрипт, сохраняющий только http_code, теряет ошибку транспорта. Сохраняйте также результат процесса и сообщение об ошибке с удалёнными конфиденциальными данными. И наоборот: curl может успешно завершить передачу, хотя сайт вернул ошибочный статус, если не используется подходящая опция fail. HTTP-ответ и результат выполнения клиента отвечают на разные вопросы.
Не пытайтесь исправить 000 отключением проверки TLS или добавлением случайного заголовка. Сначала определите, какая операция так и не дошла до итогового ответа.