Що означає 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 або додаванням випадкового заголовка. Спочатку визначте, яка операція так і не дійшла до остаточної відповіді.