Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Administracja serwerem i bezpieczeństwo Systemy CMS i narzędzia webowe

Serwer WWW jest chwilowo przeciążony lub trwają na nim prace serwisowe. Jaki kod stanu HTTP zwróci w odpowiedzi na żądanie?

A. 503
B. 400
C. 500
D. 404
Kod 503 oznacza Service Unavailable, czyli sytuację, w której serwer chwilowo nie może obsłużyć żądania. To dokładnie pasuje do przeciążenia serwera albo prac serwisowych. Ważne jest tu słowo chwilowo, bo 503 nie mówi, że adres jest zły albo że aplikacja definitywnie się zepsuła, tylko że usługa jest teraz niedostępna. W praktyce taki kod może zwrócić np. Apache, Nginx, serwer aplikacyjny albo load balancer, gdy backend nie wyrabia z ruchem, jest restartowany, wdrażana jest nowa wersja aplikacji albo administrator włączył tryb maintenance. Zgodnie ze standardem HTTP, obecnie opisanym m.in. w RFC 9110, przy kodzie 503 warto dodać nagłówek Retry-After. Informuje on klienta, po ilu sekundach lub o której godzinie warto ponowić próbę. Moim zdaniem to bardzo praktyczny szczegół, bo dobrze napisane roboty, aplikacje mobilne czy klienty API mogą dzięki temu nie dobijać przeciążonego serwera kolejnymi żądaniami. Dobra praktyka branżowa jest taka, żeby dla planowanej przerwy technicznej zwracać właśnie 503, a nie 404 czy 500, bo wyszukiwarki i monitoring inaczej interpretują te kody.
W tym pytaniu łatwo pomylić różne grupy kodów HTTP, bo wszystkie podane wartości kojarzą się z błędem. Trzeba jednak patrzeć na znaczenie konkretnego statusu, a nie tylko na to, że zaczyna się od 4 albo 5. Kod 400 Bad Request dotyczy sytuacji, gdy problem jest po stronie żądania wysłanego przez klienta. Może chodzić o uszkodzoną składnię, niepoprawne nagłówki, błędny format danych JSON albo parametr, którego serwer nie potrafi zinterpretować. Nie opisuje on przeciążenia serwera ani planowanych prac serwisowych, więc nie pasuje do takiego scenariusza. Kod 404 Not Found oznacza, że wskazany zasób nie został znaleziony pod danym adresem URL. To klasyczny przypadek literówki w ścieżce, usuniętej podstrony albo nieistniejącego endpointu API. Używanie 404 podczas przerwy technicznej byłoby mylące, bo klient lub wyszukiwarka mogłaby uznać, że zasób zniknął na stałe albo przynajmniej jest źle podlinkowany. Kod 500 Internal Server Error informuje o ogólnym, nieoczekiwanym błędzie po stronie serwera, np. wyjątku w aplikacji, błędzie konfiguracji lub problemie w kodzie backendu. To taki awaryjny status, gdy serwer sam nie potrafi poprawnie wykonać operacji. Przy przeciążeniu albo konserwacji lepszy i bardziej precyzyjny jest 503 Service Unavailable. Z mojego doświadczenia największy błąd myślowy polega na traktowaniu wszystkich kodów 5xx jako zamiennych. Niby są serwerowe, ale 500 oznacza awarię wewnętrzną, a 503 mówi o tymczasowej niedostępności usługi, często z możliwością ponowienia żądania później.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.