Każdy użytkownik Internetu w pewnym momencie spotyka się z komunikatem„Error 404 – ta strona nie istnieje„. Jest to jeden z wielu kodów statusu HTTP, którymi serwer odpowiada na żądanie klienta. Składają się one z trzycyfrowej liczby i informują o powodzeniu lub niepowodzeniu żądania. W tym artykule podsumowaliśmy dla Ciebie najważniejsze kody statusu HTTP i ich znaczenie.
Jest to odpowiedź serwera na żądanie HTTP od klienta. Najczęściej jest to przeglądarka internetowa (np. Chrome, Firefox lub Opera).
Pierwsza cyfra trzycyfrowych kodów oznacza klasę statusu (np. „Błąd serwera“ lub „Udana operacja“). Są one również klasyfikowane w różnych dokumentach RFC („Request for Comments“).
Przeglądarka internetowa zazwyczaj nie wyświetla kodów statusu. Do ich obserwacji potrzebne są specjalne narzędzia lub odpowiednie rozszerzenia przeglądarki.
Najważniejsze kody statusu HTTP w skrócie
1xx: Kody informacyjne
|
Kod |
Komunikat |
Wersja HTTP |
Opis |
100 |
Kontynuuj |
1.1 |
Żądanie zostało przyjęte, ale jest nadal przetwarzane. Serwer oczekuje na dalsze żądania od klienta. |
101 |
Przełączanie protokołów |
1.1 |
Kod ten jest zwykle żądany po stronie klienta i wskazuje, że serwer zgadza się na zmianę protokołu (np. z HTTP na inny protokół). |
102 |
Przetwarzanie |
2.0 |
Używany w celu uniknięcia time-outów podczas gdy serwer przetwarza czasochłonne żądania (np. w wyniku żądania WebDAV z wieloma podzapytaniami). |
Dobrze wiedzieć: WebDAV (Web-based Distributed Authoring and Versioning) został opracowany do edycji i zmiany dokumentów i plików w sieci w oparciu o protokół HTTP.
2xx: Operacje zakończone sukcesem
|
Kod |
Wiadomość |
Wersja HTTP |
Opis |
200 |
OK |
1.0 / 1.1 |
Żądanie zakończyło się sukcesem. Wynik jest przekazywany razem z odpowiedzią. |
201 |
Utworzono |
1.0 / 1.1 |
Nowy zasób został utworzony i załadowany w międzyczasie. Kod 201 jest zazwyczaj przekazywany jako odpowiedź serwera na tzw. żądanie PUT. |
202 |
Accepted |
1.0 / 1.1 |
Żądanie klienta zostało zaakceptowane, ale zostanie wykonane dopiero później. |
203 |
Informacja nieautorytatywna |
1.0 / 1.1 |
Serwer przyjmuje rolę tak zwanego „transformującego proxy“. Otrzymuje ze źródła kod 200, a następnie dostarcza zmodyfikowaną wersję odpowiedzi (ze źródła). |
204 |
Brak treści |
1.0 / 1.1 |
Żądanie zakończyło się sukcesem, ale odpowiedź (celowo) nie zawiera żadnych danych. Stara treść powinna być nadal wyświetlana klientom. |
205 |
Wyzeruj zawartość |
1.1. |
Żądanie zakończyło się sukcesem. Klient powinien ponownie załadować dokument i zresetować wpisy formularza. |
206 |
Zawartość częściowa |
1.1. |
Jeśli klient wysyła żądanie z tzw. nagłówkiem zakresu, to serwer odpowiada kodem 206 i informuje o przesłaniu części żądanego zasobu. Typowym przykładem jest przerwane i wznowione pobieranie plików. |
207 |
Multi-status |
2.0. |
Odpowiedź zawiera dokument XML zawierający wiele kodów statusu do niezależnych operacji. |
208 |
Już zgłoszone |
1.1 |
Kod 208 jest używany w ramach wiązania WebDAV i wskazuje, że członkowie wiązania zostali wcześniej wyliczeni i dlatego nie są już obecni w tej odpowiedzi. |
226 |
IM Używany |
Serwer zrealizował żądanie GET. Odpowiedź zawiera wynik jednej lub więcej manipulacji tą instancją. |
3xx: Przekierowania
|
Kod |
Wiadomość |
Wersja HTTP |
Opis |
300 |
Wiele możliwości wyboru |
1.1 |
Żądany zasób jest dostępny w wielu typach. Odpowiedź zawiera listę możliwych wariantów. |
301 |
Przeniesiony na stałe |
1.0 / 1.1 |
Kod 301 (Redirect) wskazuje, że żądany zasób będzie w przyszłości dostępny pod adresem określonym w polu nagłówka „Location“. Stary adres nie jest już ważny. |
302 |
Znaleziono (przeniesiono tymczasowo) |
1.0 / 1.1 |
Zgodnie z kodem statusu 302, zasób jest tymczasowo dostępny pod adresem podanym w nagłówku. Jednak stary adres pozostaje ważny. |
303 |
Zobacz inne |
1.1 |
Odpowiedź serwera może być pobierana pod innym adresem URI przy użyciu metody GET. Pozwala to na bezproblemowe przejście do wybranego zasobu po żądaniu POST. |
304 |
Nie zmodyfikowano |
1.0 / 1.1 |
Kod statusu 304 wskazuje, że zawartość żądanego zasobu nie uległa zmianie od ostatniego żądania. W związku z tym odpowiedź nie zawiera żadnych danych. |
305 |
Użyj proxy |
1.1 |
Zasób jest dostępny tylko poprzez proxy określone w nagłówku „Location“. |
306 |
(nieużywany) |
1.1 |
Kod statusu 306 jest zarezerwowany, ale nie jest już używany. Pierwotnie był używany dla odpowiedzi „Switch Proxy“. |
307 |
Tymczasowe przekierowanie |
1.1 |
Żądany zasób został znaleziony i jest tymczasowo dostępny pod adresem określonym w polu nagłówka „Location“. Stary adres pozostaje jednak ważny. Przeglądarka powinna podążać tą samą metodą, co w przypadku oryginalnego żądania. |
308 |
Trwałe przekierowanie |
Żądany zasób został znaleziony i jest tymczasowo dostępny pod adresem określonym w polu nagłówka „Location“. Stary adres nie jest już ważny. Kolejne zapytania do przeglądarki powinny być wykonane tą samą metodą, co oryginalne żądanie. |
4xx: Błąd klienta
|
Kod |
Wiadomość |
Wersja HTTP |
Opis |
400 |
Złe żądanie |
1.0 / 1.1 |
Żądanie było błędne, dlatego nie może być przetworzone przez serwer. |
401 |
Nieautoryzowany |
1.0 / 1.1 |
Żądanie nie może być przetworzone bez odpowiedniej autoryzacji. Nagłówek odpowiedzi WWW_Authenticate wyjaśnia, jak przeprowadzić uwierzytelnienie. |
402 |
Wymagana płatność |
1.1 |
Wymagana płatność. Kod statusu jest zarezerwowany do przyszłego użytku. |
403 |
Zabronione |
1.0 / 1.1 |
Błąd HTTP 403 wskazuje, że dostęp do treści jest trwale zabroniony z powodu braku autoryzacji klienta. Żądanie nie powinno być wykonane ponownie. |
404 |
Nie znaleziono |
1.0 / 1.1 |
Serwer nie mógł znaleźć żądanego zasobu. W większości przypadków jest to spowodowane tak zwanym „martwym linkiem“. |
405 |
Niedozwolona metoda |
1.1 |
Kod statusu 405 oznacza, że metoda żądania jest niedozwolona i może być wykonana tylko przy użyciu innych metod (np. GET lub POST). |
406 |
Niedopuszczalne |
1.1 |
Kod statusu 406 wskazuje, że żądany zasób nie został dostarczony w formie żądanej przez klienta. |
407 |
Wymagane uwierzytelnienie proxy |
1.1 |
Podobnie jak kod statusu 401, ta odpowiedź wymaga uwierzytelnienia. W tym przypadku jednak klient musi zidentyfikować się z proxy, które musi uwzględnić pole odpowiedzi Proxy Authenticate. |
408 |
Limit czasu żądania |
1.1 |
Klient nie zakończył żądania w czasie określonym przez serwer. Błąd HTTP 408 występuje np. przy przesyłaniu dużych plików. |
409 |
Konflikt |
1.1 |
Żądanie zostało wykonane przy błędnych założeniach i nie może zostać przetworzone, w przeciwnym razie w zasobach żądających wystąpiłby konflikt. W przypadku żądania PUT może to być spowodowane np. zmianą wprowadzoną w międzyczasie do zasobu przez stronę trzecią. |
410 |
Gone |
1.1 |
Zasób już nie istnieje i został trwale usunięty. |
411 |
Wymagana długość |
1.1 |
Przetwarzanie żądania bez nagłówka „Content-Length“ jest odrzucane przez serwer. |
412 |
Warunek wstępny nie powiódł się |
1.1 |
Warunek określony przez klienta nie może być spełniony. |
413 |
Zbyt duży element żądania |
1.1 |
Żądanie było zbyt duże, aby mogło zostać przetworzone przez serwer i dlatego zostało odrzucone. Może to być spowodowane na przykład przez przesłany plik. |
414 |
Zbyt długi URI |
1.1 |
Adres URL żądania jest zbyt długi. |
415 |
Nieobsługiwany typ mediów |
1.1 |
Żądany typ mediów lub MIME nie jest obsługiwany. |
416 |
Żądany zakres nie jest możliwy do spełnienia |
1.1 |
Żądany podzakres zasobu nie istnieje lub jest nieważny. Występuje np. w związku z częściowym pobieraniem. |
417 |
Oczekiwanie nie powiodło się |
1.1 |
Używane w połączeniu z polem nagłówka „Expect“. Zachowanie serwera wymagane przez klienta w polu nagłówka „Expect“ nie może być spełnione. |
420 |
Polityka niespełniona |
1.1 |
Zaproponowane w W3C PEP (Working Draft 21 November 1997), aby wskazać, że warunek nie został spełniony. |
421 |
Błędnie skierowany wniosek |
2.0 |
Żądanie trafiło do serwera, który nie jest w stanie wysłać odpowiedzi. |
422 |
Nieprzetwarzalny podmiot |
1.1 |
Kod statusu jest używany, gdy ani zwrócenie kodu statusu 415 ani 400 nie byłoby uzasadnione, ale odmówiono przetworzenia żądania (na przykład z powodu błędów semantycznych). |
423 |
Zablokowany |
1.1 |
Żądany zasób jest obecnie zablokowany. |
424 |
Nieudana zależność |
1.1 |
Żądanie nie mogło zostać wykonane, ponieważ wymaga powodzenia poprzedniego żądania. |
426 |
Wymagana aktualizacja |
1.1 |
Serwer nalega, aby klient powtórzył żądanie przy użyciu innego protokołu. Typowym przypadkiem użycia jest przejście na protokół HTTP z zabezpieczeniem warstwy transportowej. |
428 |
Warunek wstępny Wymagane |
1.1 |
Nie wszystkie warunki wstępne wymagane dla żądania zostały spełnione. |
429 |
Zbyt wiele wniosków |
1.1 |
Klient wykonał zbyt wiele żądań w określonym czasie. |
431 |
Zbyt duże pola nagłówka żądania |
1.1 |
Maksymalna długość pola nagłówka lub całego nagłówka została przekroczona. |
451 |
Niedostępne z przyczyn prawnych |
1.1 |
Zasób jest niedostępny z przyczyn prawnych (np. ze względu na prawa autorskie lub cenzurę w niektórych krajach). Kod statusu został wprowadzony w 2015 roku, a jego nazwa pochodzi od powieści Raya Bradbury’ego „Fahrenheit 451“. |
Dobrze wiedzieć: Wraz ze statusem 418 pojawia się kolejny kod z kategorii błędów klienta. W ramach nie do końca poważnego protokołu parzenia kawy (Hyper Text Coffee Pot Control Protocol) wskazuje on, że zamiast dzbanka do kawy omyłkowo użyto czajnika. Kod statusu nie jest jednak ani częścią protokołu HTTP, ani nie jest zdefiniowany w SCR („Status Code Registry“).
5xx: Błąd serwera
|
Kod |
Wiadomość |
Wersja HTTP |
Opis |
500 |
Wewnętrzny błąd serwera |
1.0 / 1.1 |
Kod statusu 500 jest wyświetlany, jeśli żądanie nie może być wykonane z powodu wewnętrznego błędu (serwera). |
501 |
Nie wdrożono |
1.0 / 1.1 |
Serwer nie posiada niezbędnej funkcjonalności do przetworzenia żądania. Przyczyną jest często nieznana lub nieobsługiwana metoda HTTP. |
502 |
Zła brama |
1.0 / 1.1 |
Błąd HTTP 502 oznacza, że serwer nie mógł spełnić swojej funkcji jako brama lub proxy, ponieważ błąd wystąpił dalej. |
503 |
Usługa niedostępna |
1.0 / 1.1 |
Usługa lub serwer jest obecnie niedostępny. Dzieje się tak np. podczas prac konserwacyjnych lub przeciążenia itp. |
504 |
Timeout bramy |
1.1 |
Żądanie nie może być przetworzone przez proxy z powodu przekroczenia limitu czasu. |
505 |
Nieobsługiwana wersja HTTP |
1.1 |
Żądana wersja HTTP nie jest obsługiwana. |
506 |
Wariant również negocjuje |
Uzgodnienie treści żądania skutkuje odniesieniem kołowym. |
|
507 |
Niewystarczające przechowywanie |
Żądanie nie mogło zostać przetworzone, ponieważ aktualnie dostępna przestrzeń dyskowa serwera jest niewystarczająca. |
|
508 |
Wykryto pętlę |
Operacja nie została wykonana, ponieważ jej wykonanie wpadłoby w nieskończoną pętlę. Kod stanu jest zdefiniowany w rozszerzeniu wiązań dla WebDAV (zgodnie z RFC 5842), ponieważ wiązania mogą tworzyć cykliczne ścieżki do zasobów WebDAV. |
|
509 |
Przekroczony limit przepustowości |
Żądanie klienta zostało odrzucone, ponieważ w przeciwnym razie przekroczona zostałaby dostępna przepustowość. Ten kod stanu jest nieoficjalnym rozszerzeniem niektórych serwerów. |
|
510 |
Nie rozszerzony |
Żądanie nie zawiera wszystkich informacji, których obowiązkowo oczekuje żądane rozszerzenie serwera (RFC 2774). |
|
511 |
Wymagane uwierzytelnienie sieciowe |
Klient musi się najpierw uwierzytelnić, zanim uzyska dostęp do sieci. |
Uwaga: Niektórzy producenci oprogramowania używają zastrzeżonych kodów statusu HTTP, które są numerowane od 9XX. Ten zakres numerów jest jednak specjalnym przypadkiem, który nie jest wymieniany w dokumentach RFC, a więc jest również poza standardem.
W poniższym filmie jeszcze raz wyjaśnione są najważniejsze kody statusów HTTP: