O que HTTP 000 significa em um teste de proxy com curl
000 não é um status HTTP enviado pelo site. Leia o código de saída e o erro do curl junto com o campo HTTP exibido pelo teste.
Quando um teste com curl mostra 000 como status HTTP, ele não obteve um código de resposta HTTP final para informar. O site não enviou um status HTTP real chamado 000.
Registre o erro também
Este exemplo para um shell POSIX imprime o campo HTTP final, o campo CONNECT e o código de saída do processo 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"
Substitua o endpoint do exemplo pelo seu proxy HTTP ou por um candidato da lista de proxies HTTP. Mantenha show-error ativado: a mensagem de erro costuma ser a parte mais útil. O campo CONNECT é relevante quando há um túnel; ele não é um segundo status final do site.
Leia os valores em conjunto
- Uma falha de conexão com o proxy pode deixar o campo HTTP em 000.
- Um tempo limite atingido antes de receber uma resposta pode causar o mesmo resultado.
- Uma resposta CONNECT bem-sucedida seguida de uma falha de TLS pode mostrar connect=200 e http=000.
- Uma resposta completa do site, como 403, é diferente: existe uma resposta HTTP real para examinar.
O código de saída exato e a mensagem ajudam a delimitar a causa. Veja se a falha ocorreu ao localizar o proxy, conectar à porta dele, negociar o túnel ou verificar o destino.
Não reduza todos os resultados a uma verificação de status
Um script que salva apenas http_code descarta o erro de transporte. Salve também o resultado do processo e uma mensagem de erro sem dados sensíveis. No sentido inverso, o curl pode concluir uma transferência com sucesso enquanto o site retorna um status de erro, a menos que você use uma opção fail adequada. A resposta HTTP e o resultado da execução do cliente respondem a perguntas diferentes.
Não tente corrigir 000 desativando a verificação TLS ou adicionando um cabeçalho aleatório. Primeiro descubra qual operação não chegou a obter uma resposta final.