Menu
Coddy logo textTech

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ło

Jeś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}.

challenge icon

Wyzwanie

Trudny

Pokaż, że 404 nadal oznacza udane żądanie.

  1. Udostępnij folder na porcie 9120
  2. Poproś o stronę, która nie istnieje, i wypisz status= wraz z kodem statusu
  3. W następnym wierszu wypisz exit= wraz z kodem wyjścia curl

Oczekiwany wynik:

status=404
exit=0

Odczytaj $? natychmiast po poleceniu curl, które go zwróciło.

Spróbuj swoich sił

Terminal
quiz iconSprawdź 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

Poćwicz samodzielnie: Edytor online Terminal