Kategorie statusów

1xx informacja
żądanie zainicjowane przez przeglądarkę jest kontynuowane.
2xx powodzenie
żądanie przeglądarki zostało pomyślnie odebrane, zrozumiane, a następnie przetworzone przez serwer.
3xx przekierowania
nowa zawartość została zastąpiona żądanym zasobem.
4xx błędy klienta
informują o wystąpieniu problemu z danym żądaniem.
5xx błędy serwera
żądanie zostało zaakceptowane, ale błąd na serwerze uniemożliwił jego spełnienie.

Opis kodów odpowiedzi

1xx Informacja

100 Continue („Kontynuuj”)
odpowiedź tymczasowa, która informuje klienta, aby kontynuował żądanie lub zignorować odpowiedź, jeśli żądanie zostało już zakończone.
101 Switching Protocols („Przełączanie protokołów”)
wysyłany w odpowiedzi na żądania nagłówka Upgrade od klienta. Wskazuje na protokół, do którego przełącza się serwer.
102 Processing („Przetwarzanie”; WebDAV; RFC 2518)
informuje, że serwer otrzymał i przetwarza żądanie, ale klient musi jeszcze zaczekać na odpowiedź. Żądanie może zawierać wiele pod-zapytań, które obejmuje operacje na plikach, co wymaga dłuższego czasu na wykonanie żądania. Zapobiega to przekroczeniu czasu przez klienta i założeniu, że żądanie zostało utracone.
103 Early Hints („Wczesne wskazówki”; RFC 8297)
pozwala klientowi rozpocząć wstępne ładowanie zasobów w czasie, gdy serwer przygotowuje odpowiedź.

2xx Powodzenie

200 OK
Kod informujący, że żądanie zakończyło się sukcesem.
201 Created („Utworzony”)
żądanie powiodło się i został stworzony nowy zasób. Jest to typowa odpowiedź wysyłana po żądaniach POST lub po niektórych żądaniach typu PUT.
202 Accepted („Przyjęte”)
odebrano żądanie, ale jeszcze nie jest wykonane. Kod jest przeznaczony dla przypadków, kiedy inny proces lub serwer obsługuje żądanie lub dla przetwarzania wsadowego (batch processing).
203 Non-Authoritative Information („Informacje nieautoryzowane”)
zwrócone metadane nie są dokładnie takie same jak te, które są dostępne na serwerze źródłowym, ale zostały zebrane z kopii lokalnej lub strony trzeciej. Jest to najczęściej używane dla mirrorów lub kopii zapasowych innego zasobu.
204 No Content („Brak zawartości”)
serwer pomyślnie przetworzył żądanie klienta i nie zwraca żadnej zawartości (brak zawartości sekcji „body”).
205 Reset Content („Resetuj zawartość”)
serwer zrealizował żądanie i należy przywrócić domyślny wygląd dokumentu.
206 Partial Content („Zawartość częściowa”)
żądanie zakończyło się częściowym sukcesem, a sekcja „body” zawiera żądane dane i informacje, opisane w nagłówku „Range” żądania.
207 Multi-Status (WebDAV; RFC 4918)
informacja, że może istnieć wiele odpowiedzi dla danego zapytania (może pasować wiele kodów statusu).
226 IM Used („Użyto IM”; RFC 3229)
żądanie zrealizowane, a odpowiedź to wynik IM.
208 Already Reported („Już zgłoszone”)
używany w statusie 207 (Multi-Status), aby zaoszczędzić miejsce i uniknąć konfliktów.

3xx Przekierowanie

300 Multiple Choices („Wiele możliwości”)
żądanie ma więcej niż jedną możliwą odpowiedź. Klient powinien wybrać jedną z nich (rzadko używany, bo nie ma standardowego sposobu wyboru odpowiedzi).
301 Moved Permanently („Przeniesiono na stałe”)
żądany zasób został przeniesiony na stałe pod nowy adres URL. Klient przekierowuje użytkownika do nowej lokalizacji, a boty wyszukiwarek aktualizują swoje zasoby o tę informację (przeindeksowanie). Adres ten jest jednym z najczęściej spotykanych podczas optymalizacji wyszukiwarek pod kątem SEO.
302 Found („Znaleziono”)
żądany zasób został tymczasowo przeniesiony pod inny adres URL. Klient przekierowuje użytkownika na daną stronę, ale boty wyszukiwarek nie aktualizują swoich zasobów o tę informację.
303 See Other („Zobacz inne”)
odpowiedź na żądanie znajduje się pod innym URI i klient powinien się tam skierować.
304 Not Modified („Nie zmieniono”)
nie ma potrzeby ponownego przesyłania żądania o wskazane zasoby. Jest to niejawne przekierowanie do buforowanego zasobu.
305 Use Proxy („Użyj Proxy”)
do żądanego zasobu lub treści należy odwołać się poprzez serwer Proxy podany w sekcji „Location” nagłówka odpowiedzi. Ze względów bezpieczeństwa wiele klientów (m.in. Firefox) nie korzysta z tego statusu.
306 Switch Proxy („Zmień serwer Proxy”)
aktualnie nieużywany. Oryginalnie oznaczał informację w stylu: „kolejne żądania powinny używać podanego serwera Proxy”.
307 Temporary Redirect („Przekierowanie tymczasowe”)
żądany zasób został tymczasowo przeniesiony pod inny adres URL. Najważniejszą różnicą między kodem 307, a kodem 302 jest bezpieczeństwo połączenia – przekierowanie 307 nie zmienia metody zapytania i dlatego jest ono rekomendowane w przypadkach tymczasowych przeniesień. Przekierowanie 307, podobnie jak 302, nie ma wpływu na pozycjonowanie.
308 Permanent Redirect („Przekierowanie stałe”)
żądany zasób został definitywnie przeniesiony pod inny adres URL. Działa podobnie jak w przypadku kodu 301.
310 Too Many Redirects („Zbyt wiele przekierowań”)
podczas realizacji żądanie dochodzi do większej ilości przekierowań niż to akceptowalne. Klient nie dotarł do ostatecznej lokalizacji zasobów, więc użytkownik nie otrzyma żądanej treści.

4xx Błędy klienta

400 Bad Request („Nieprawidłowe żądanie”)
serwer nie może przetworzyć żądania z powodu błędu po stronie klienta (np. nieprawidłowa składnia żądania, zbyt duży rozmiar, niepoprawny routing żądania).
401 Unauthorized („Nieautoryzowany dostęp”)
żądanie klienta nie zostało zakończone z powodu braku ważnych poświadczeń uwierzytelniających dla żądanego zasobu.
402 Payment Required („Wymagana opłata”)
żądana zawartość nie jest dostępna, bo znajduje się za „paywallem".
403 Forbidden („Dostęp zabroniony”)
żądanie zostało przyjęte, ale konfiguracja bezpieczeństwa nie pozwala zwrócić określoną treść lub zasób.
404 Not Found („Nie odnaleziono”)
serwer nie może znaleźć danego zasobu („broken link").
405 Method Not Allowed („Niedozwolona metoda”)
serwer zna metodę żądania, ale zasób docelowy nie obsługuje tej metody.
408 Request Timeout („Koniec czasu przeznaczonego na żądanie”)
serwer przekroczył czas oczekiwania na żądanie. Klient nie dokonał żądania w czasie, w którym serwer był przygotowany do jego przyjęcia. Klient może powtórzyć żądanie bez modyfikacji w dowolnym późniejszym czasie.
409 Conflict („Konflikt”)
zapytanie nie mogło zostać zrealizowane z powodu konfliktu w bieżących zasobach (np. konflikt edycji pomiędzy wieloma jednoczesnymi aktualizacjami).
410 Gone („Usunięto”)
żądany zasób został trwale usunięty. Klient powinien już więcej nie odwoływać się do tego zasobu.
415 Unsupported Media Type („Nieznany sposób żądania”)
serwer nie rozumie składni żądania.
418 I’m a Teapot („Jestem czajnikiem”; RFC 2324, RFC 7168)
żart oparty na jednym z primaaprilisowych RFC
421 Misdirected Request („Błędnie skierowane żądanie”)
serwer nie jest w stanie wygenerować odpowiedzi (na przykład z powodu ponownego użycia połączenia).
422 Unprocessable Content („Treść nieprzetworzona”)
żądanie prawidłowo sformułowane (tj. poprawne składniowo), ale nie mogło zostać przetworzone.
423 Locked („Zablokowany”; WebDAV; RFC 4918)
zasób jest zablokowany
424 Failed Dependency („Nieudana zależność”; WebDAV; RFC 4918)
żądanie nie powiodło się, ponieważ zależało od innego żądania i to żądanie nie powiodło się (np. PROPPATCH).
425 Too Early („Za wcześnie”; RFC 8470)
odmowa przetwarzania żądania ze względu na ryzyko ataku typu Replay.
426 Upgrade Required („Wymagana aktualizacja”)
odmowa wykonania żądania przy użyciu bieżącego protokołu, ale może zwrócić żądane zasoby po aktualizacji klienta do innego protokołu.
428 Precondition Required („Wymagany warunek wstępny”; RFC 6585)
żądanie nie posiada nagłówka wstępnego (np. If-Match), który jest wymagany przez serwer.
429 Too Many Requests („Zbyt wiele żądań”; RFC 6585)
użytkownik wysłał zbyt wiele żądań w określonym czasie.
431 Request Header Fields Too Large („Zbyt duże pola nagłówka żądania”; RFC 6585)
odmowa przetworzenia żądania z powodu zbyt długich nagłówków HTTP.
451 Unavailable For Legal Reasons („Zawartość niedostępna z powodów prawnych”; RFC 7725)
zasób został zablokowany z powodu naruszenia prawa (lub także z powodu cenzury).

5xx Błędy serwera

500 Internal Server Error („Wewnętrzny błąd serwera”)
błąd po stronie serwera. Ogólna odpowiedź typu „catch-all”. Zazwyczaj wskazuje na to, że serwer nie był w stanie znaleźć lepszego dopasowania do któregoś kodu z grupy błędu 5xx.
501 Not Implemented („Nie zaimplementowano”)
brak obsługi funkcjonalności wymaganej do spełnienia żądania. Kod 501 jest właściwą odpowiedzią, gdy serwer nie rozpoznaje metody żądania i nie jest w stanie jej obsłużyć dla żadnego zasobu. Jedyne metody, które serwery muszą wspierać (i dlatego nie mogą zwracać 501) to GET i HEAD. Jeśli serwer rozpoznaje metodę, ale celowo jej nie obsługuje, lepszą alternatywą jest status 405 Method Not Allowed.
502 Bad Gateway („Błąd bramki”)
serwer, działając jako brama lub proxy, otrzymał nieprawidłową odpowiedź od serwera nadrzędnego i nie jest w stanie zrealizować żądania.
503 Service Unavailable („Usługa niedostępna”)
serwer nie jest gotowy do obsługi żądania. Typowe przyczyny to wyłączenie serwera z powodu konserwacji lub jego przeciążenie (nagłówek Retry-After powinien, jeśli to możliwe, zawierać szacowany czas do przywrócenia usługi).
504 Gateway Timeout („Przekroczono czas bramy”)
serwer działał jako brama lub proxy i nie otrzymywał w ustalonym czasie odpowiedzi od serwera nadrzędnego, której potrzebował do zakończenia żądania.
505 HTTP Version Not Supported („Nieobsługiwana wersja HTTP”)
wersja HTTP użyta w żądaniu nie jest obsługiwana.
506 Variant Also Negotiates (RFC 2295)
pętla negocjaji treści
507 Insufficient Storage („Niewystarczająca pamięć”; WebDAV; RFC 4918)
za mało pamięci potrzebnej do realizacji żądania.
508 Loop Detected („Wykryto pętlę”; WebDAV; RFC 5842)
wykryto nieskończoną pętlę podczas przetwarzania żądania.
509 Bandwidth Limit Exceeded („Przekroczenie limitu transferu danych”)
serwer jest chwilowo niedostępny z powodu przekroczenia limitu transferu danych.
510 Not Extended (RFC 2774)
wymagane dalsze rozszerzenia żądania, aby serwer mógł je prawidłowo spełnić.
511 Network Authentication Required („Wymagane uwierzytelnienie”; RFC 6585)
klient musi się uwierzytelnić, aby uzyskać dostęp do sieci.

More information

HTTP status ranges in a nutshell

1xx: hold on
2xx: here you go
3xx: go away
4xx: you fucked up
5xx: I fucked up

Google i 418

Google: 418 I’m a teapot

Refs