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