Када тест помоћу curl-а испише 000 као HTTP статус, није добио коначни код 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-а или додавањем насумичног заглавља. Прво утврдите која операција никада није стигла до коначног одговора.

Повезани чланци