Kody zakończenia curl
Lekcja 30 z 47 w kursie Sieci komputerowe w terminalu w Coddy.
W jednym poleceniu curl występują dwa zupełnie różne pojęcia błędu, a ich mylenie prowadzi do rzeczywistych błędów.
Kod statusu to odpowiedź serwera: 200, 404, 500. Kod wyjścia informuje, czy curl w ogóle zdołał nawiązać komunikację.
Odpowiedź 404 oznacza udaną komunikację. Udało się połączyć z serwerem, który zrozumiał żądanie i udzielił odpowiedzi. curl kończy działanie z kodem 0. Skrypt, który sprawdza tylko kod wyjścia, uzna, że wszystko jest w porządku. To klasyczna przyczyna sytuacji, w których potoki kończą się powodzeniem, mimo że pobierają stronę z błędem.
curl -s -o /dev/null http://127.0.0.1:9120/missing
echo $? # 0, ponieważ samo żądanie się powiodłoJeśli chcesz, by błędny status oznaczał błąd, użyj opcji --fail, która sprawia, że curl kończy działanie z niezerowym kodem dla odpowiedzi 4xx i 5xx. W przeciwnym razie samodzielnie sprawdź %{http_code}.
Wyzwanie
TrudnyPokaż, że 404 nadal oznacza udane żądanie.
- Udostępnij folder na porcie 9120
- Poproś o stronę, która nie istnieje, i wypisz
status=wraz z kodem statusu - W następnym wierszu wypisz
exit=wraz z kodem wyjścia curl
Oczekiwany wynik:
status=404
exit=0Odczytaj
$?natychmiast po poleceniu curl, które go zwróciło.
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Sieci komputerowe w terminalu
3Porty i gniazda
Czym jest portDobrze znane portyLocalhostNasłuchiwanie a łączeniePodsumowanie: porty6curl od podstaw do zaawansowania
Wyświetlanie nagłówkówZapisywanie odpowiedziWłasne nagłówkiStatus i czasKody zakończenia curlPodsumowanie: flagi curl9Uwierzytelnianie i debugowanie
Klucze API i BearerUser AgentLimity czasu i ponowieniaAnaliza błęduPodsumowanie: debugowaniePoćwicz samodzielnie: Edytor online Terminal