Códigos de Saída do curl
Lição 30 de 47 do curso Redes com o Terminal da Coddy.
Há duas noções completamente diferentes de falha em um único comando curl, e confundi-las causa bugs reais.
O código de status é a resposta do servidor: 200, 404, 500. O código de saída indica se o curl conseguiu estabelecer a comunicação.
Um 404 é uma comunicação bem-sucedida. O servidor foi alcançado, entendeu a solicitação e respondeu. curl termina com 0. Um script que verifica apenas o código de saída tratará isso como algo normal, o que é uma fonte clássica de pipelines que são considerados bem-sucedidos enquanto baixam uma página de erro.
curl -s -o /dev/null http://127.0.0.1:9120/missing
echo $? # 0, porque a própria requisição funcionouSe você quiser que uma resposta com status incorreto cause uma falha, solicite isso com --fail, que faz o curl terminar com um código diferente de zero para respostas 4xx e 5xx. Caso contrário, verifique %{http_code} por conta própria.
Desafio
DifícilMostre que um 404 ainda é uma solicitação bem-sucedida.
- Sirva uma pasta na porta 9120
- Peça uma página que não existe e imprima
status=com o código de status - Na linha seguinte, imprima
exit=com o código de saída do curl
Saída esperada:
status=404
exit=0Leia
$?imediatamente após o curl que o produziu.
Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Redes com o Terminal
2Nomes e DNS
Por que os nomes existemO arquivo hostsConsultando um nomeTipos de registrosRecapitulação: nomes3Portas e Sockets
O que é uma portaPortas conhecidasLocalhostEscutando vs. conectandoRecapitulação: portas6curl em Detalhes
Visualizando os CabeçalhosSalvando RespostasCabeçalhos PersonalizadosStatus e TempoCódigos de Saída do curlRecapitulação: Opções do curl9Autenticação e Depuração
Chaves de API e BearerO User AgentTimeouts e Novas TentativasLendo uma FalhaRevisão: DepuraçãoPratique por conta própria: Playground de Terminal