Kody statusu HTTP
Działa w całości w Twojej przeglądarce. Twoje pliki i dane nigdy nie opuszczają Twojego urządzenia.
| 1xxInformacyjne | ||
|---|---|---|
| 100 | Continue | Serwer otrzymał początkową część żądania i klient powinien kontynuować. |
| 101 | Switching Protocols | Serwer zgadza się zmienić protokół zgodnie z żądaniem klienta. |
| 102 | Processing | Serwer otrzymał żądanie i przetwarza je, ale odpowiedź nie jest jeszcze gotowa. |
| 103 | Early Hints | Używany do zwrócenia niektórych nagłówków odpowiedzi przed ostateczną wiadomością HTTP. |
| 2xxSukces | ||
| 200 | OK | Żądanie zakończyło się powodzeniem. |
| 201 | Created | Żądanie zakończyło się powodzeniem i w jego wyniku utworzono nowy zasób. |
| 202 | Accepted | Żądanie zostało przyjęte, ale jeszcze nie zrealizowane. |
| 203 | Non-Authoritative Information | Zwrócone metadane nie są dokładnie takie same jak te z serwera źródłowego. |
| 204 | No Content | Serwer zrealizował żądanie, ale nie ma treści do odesłania. |
| 205 | Reset Content | Serwer prosi klienta o zresetowanie dokumentu, który wysłał to żądanie. |
| 206 | Partial Content | Serwer dostarcza tylko część zasobu ze względu na nagłówek zakresu wysłany przez klienta. |
| 207 | Multi-Status | Przekazuje informacje o wielu zasobach w sytuacjach, gdy odpowiednich może być kilka kodów stanu. |
| 208 | Already Reported | Używany wewnątrz odpowiedzi DAV, aby uniknąć wielokrotnego wymieniania elementów wielu powiązań. |
| 226 | IM Used | Serwer zrealizował żądanie dotyczące zasobu, a odpowiedź jest reprezentacją wyniku manipulacji na instancji. |
| 3xxPrzekierowanie | ||
| 300 | Multiple Choices | Żądanie ma więcej niż jedną możliwą odpowiedź i klient powinien wybrać jedną z nich. |
| 301 | Moved Permanently | Zasób został trwale przeniesiony pod nowy adres URL. |
| 302 | Found | Zasób tymczasowo znajduje się pod innym adresem URL. |
| 303 | See Other | Odpowiedź można znaleźć pod innym adresem URL i należy ją pobrać metodą GET. |
| 304 | Not Modified | Zasób nie został zmodyfikowany od wersji określonej przez nagłówki żądania. |
| 305 | Use Proxy | Do żądanego zasobu trzeba uzyskać dostęp za pośrednictwem serwera proxy podanego w polu location. |
| 307 | Temporary Redirect | Zasób tymczasowo znajduje się pod innym adresem URL, a metoda żądania nie powinna się zmieniać. |
| 308 | Permanent Redirect | Zasób został trwale przeniesiony, a metoda żądania nie powinna się zmieniać. |
| 4xxBłąd klienta | ||
| 400 | Bad Request | Serwer nie może przetworzyć żądania z powodu błędu po stronie klienta. |
| 401 | Unauthorized | Klient musi się uwierzytelnić, aby otrzymać żądaną odpowiedź. |
| 402 | Payment Required | Zarezerwowany do przyszłego użytku, pierwotnie przeznaczony dla systemów płatności cyfrowych. |
| 403 | Forbidden | Klient nie ma praw dostępu do tej treści. |
| 404 | Not Found | Serwer nie może znaleźć żądanego zasobu. |
| 405 | Method Not Allowed | Metoda żądania jest znana serwerowi, ale nie jest obsługiwana przez docelowy zasób. |
| 406 | Not Acceptable | Serwer nie może wygenerować odpowiedzi zgodnej z listą akceptowalnych wartości. |
| 407 | Proxy Authentication Required | Klient musi najpierw uwierzytelnić się wobec serwera proxy. |
| 408 | Request Timeout | Serwer przekroczył czas oczekiwania na żądanie. |
| 409 | Conflict | Żądanie jest sprzeczne z bieżącym stanem docelowego zasobu. |
| 410 | Gone | Żądana treść została trwale usunięta z serwera i nie zostanie przywrócona. |
| 411 | Length Required | Serwer odmawia przyjęcia żądania bez zdefiniowanego nagłówka Content-Length. |
| 412 | Precondition Failed | Jeden z warunków podanych w nagłówkach żądania nie został spełniony. |
| 413 | Payload Too Large | Treść żądania jest większa niż limity określone przez serwer. |
| 414 | URI Too Long | Adres URI żądany przez klienta jest dłuższy, niż serwer jest w stanie zinterpretować. |
| 415 | Unsupported Media Type | Format multimedialny żądanych danych nie jest obsługiwany przez serwer. |
| 416 | Range Not Satisfiable | Nie można spełnić zakresu określonego w nagłówku Range. |
| 417 | Expectation Failed | Nie udało się spełnić oczekiwania podanego w nagłówku Expect żądania. |
| 418 | I'm a Teapot | Serwer odmawia zaparzenia kawy, ponieważ jest, na stałe, czajnikiem. |
| 419 | Page ExpiredNieoficjalny | Niestandardowy. Laravel zwraca go, gdy token CSRF wysłany z formularzem nie pasuje do sesji, najczęściej dlatego, że sesja wygasła, gdy strona była otwarta. |
| 420 | Enhance Your CalmNieoficjalny | Niestandardowy. Dawne API wyszukiwania i trendów Twittera wysyłało go klientom, którzy przekroczyli limit żądań; standardowym kodem w takiej sytuacji jest 429. Spring Framework definiował też 420 jako Method Failure, obecnie przestarzały. |
| 421 | Misdirected Request | Żądanie zostało skierowane do serwera, który nie jest w stanie wygenerować odpowiedzi. |
| 422 | Unprocessable Content | Żądanie miało poprawną składnię, ale nie mogło zostać przetworzone z powodu błędów semantycznych. |
| 423 | Locked | Zasób, do którego następuje dostęp, jest zablokowany. |
| 424 | Failed Dependency | Żądanie nie powiodło się, ponieważ zależało od innego żądania, które się nie powiodło. |
| 425 | Too Early | Serwer nie chce ryzykować przetworzenia żądania, które mogłoby zostać powtórzone. |
| 426 | Upgrade Required | Serwer odmawia wykonania żądania przy użyciu bieżącego protokołu. |
| 428 | Precondition Required | Serwer źródłowy wymaga, aby żądanie było warunkowe. |
| 429 | Too Many Requests | Klient wysłał zbyt wiele żądań w danym przedziale czasu. |
| 431 | Request Header Fields Too Large | Serwer odmawia przetworzenia żądania, ponieważ jego pola nagłówka są zbyt duże. |
| 444 | No ResponseNieoficjalny | Niestandardowy. Kod nginx, który zamyka połączenie bez wysyłania odpowiedzi; pojawia się w logach serwera, nigdy w przeglądarce. |
| 451 | Unavailable For Legal Reasons | Żądany zasób jest niedostępny z powodu prawnego wymogu odmowy dostępu. |
| 499 | Client Closed RequestNieoficjalny | Niestandardowy. nginx zapisuje go w logach, gdy klient zamknie połączenie, zanim serwer skończy odpowiadać. |
| 5xxBłąd serwera | ||
| 500 | Internal Server Error | Serwer napotkał sytuację, z którą nie wie, jak sobie poradzić. |
| 501 | Not Implemented | Metoda żądania nie jest obsługiwana przez serwer i nie może zostać przetworzona. |
| 502 | Bad Gateway | Serwer, działając jako brama, otrzymał nieprawidłową odpowiedź od serwera nadrzędnego. |
| 503 | Service Unavailable | Serwer nie jest gotowy do obsługi żądania, często z powodu konserwacji lub przeciążenia. |
| 504 | Gateway Timeout | Serwer, działając jako brama, nie otrzymał odpowiedzi na czas. |
| 505 | HTTP Version Not Supported | Wersja HTTP użyta w żądaniu nie jest obsługiwana przez serwer. |
| 506 | Variant Also Negotiates | Serwer ma wewnętrzny błąd konfiguracji w przezroczystej negocjacji treści. |
| 507 | Insufficient Storage | Serwer nie jest w stanie zapisać reprezentacji potrzebnej do zrealizowania żądania. |
| 508 | Loop Detected | Serwer wykrył nieskończoną pętlę podczas przetwarzania żądania. |
| 510 | Not Extended | Aby serwer mógł zrealizować żądanie, konieczne są dalsze rozszerzenia. |
| 511 | Network Authentication Required | Klient musi się uwierzytelnić, aby uzyskać dostęp do sieci. |
| 599 | Network Connect Timeout ErrorNieoficjalny | Niestandardowy kod używany przez niektóre serwery proxy do sygnalizowania przekroczenia czasu połączenia sieciowego za proxy. |
O tym narzędziu
To lista referencyjna kodów statusu HTTP od 100 do 599, obejmująca pięć klas zdefiniowanych w RFC 9110: informacyjne, sukces, przekierowanie, błąd klienta i błąd serwera. Przy każdym kodzie widać jego nazwę i krótki opis, a pole wyszukiwania filtruje listę w miarę pisania, dopasowując do numeru kodu, nazwy i tekstu opisu.
Co znajduje się na liście?
Wszystkie kody zarejestrowane w RFC 9110, plus kilka szeroko używanych dodatków, które nigdy nie trafiły do podstawowej specyfikacji, ale stale pojawiają się w prawdziwych API: 418 (żart “I’m a teapot” z RFC 2324), 429 (przekroczony limit zapytań) i 451 (niedostępne z powodów prawnych). Wpisz “404”, “not found” albo “gateway”, a pasujące wiersze zostaną widoczne, reszta się ukryje, więc nie trzeba przewijać pięciu klas kodów, żeby znaleźć ten właściwy. Każdy wiersz ma też własny link: dopisz #419 do adresu strony, a trafisz prosto do tego kodu.
Co oznaczają nieoficjalne kody, takie jak 419 i 420?
Część kodów pochodzi z konkretnego frameworka lub serwera, a nie z RFC. Lista oznacza je etykietą “Nieoficjalny”. Kod HTTP 419 (Page Expired) zwraca Laravel, gdy token CSRF wysłany z formularzem nie pasuje już do sesji. Zwykle to znak, że sesja wygasła, kiedy strona była otwarta. Błąd HTTP 420 (Enhance Your Calm) to odpowiedź, którą dawne API wyszukiwania i trendów Twittera wysyłało klientom przekraczającym limit zapytań. Standardowym kodem w takiej sytuacji jest 429. Spring Framework używał też 420 dla Method Failure, obecnie przestarzałego. Do tego dochodzą dwa kody nginx: 444 zamyka połączenie bez żadnej odpowiedzi, a 499 znaczy, że klient rozłączył się, zanim serwer skończył. Oba zobaczysz w logach serwera, nie w przeglądarce. Jest jeszcze 599, którego niektóre proxy używają przy przekroczeniu czasu połączenia sieciowego.
Czy potrzebne jest połączenie z internetem?
Nie. Lista to statyczne dane renderowane bezpośrednio na stronie, przy wczytaniu ani przy wyszukiwaniu nic nie jest pobierane z serwera. To też oznacza, że wyszukiwanie działa natychmiast, bez żadnego zapytania w tle podczas filtrowania.
Kiedy się to przydaje?
Wtedy, gdy debugujesz odpowiedź API i nie pamiętasz, czy 422 znaczy to samo co 400, albo gdy zastanawiasz się, czy przekierowanie powinno zwrócić 301, 302 czy 308 i potrzebujesz przypomnienia, czym się różnią. Przydaje się też przy rzadziej spotykanych kodach, których nie warto zapamiętywać na pamięć, jak 409 (konflikt), 416 (zakres niemożliwy do spełnienia), czy przy rozróżnieniu między 502 (błędna brama) a 503 (usługa niedostępna). Więcej szczegółów o każdym z nich, wraz z metodami i nagłówkami, które zwykle się z nim wiążą, znajdziesz w dokumentacji kodów statusu HTTP na MDN.
Pięć klas daje szybką pierwszą orientację w każdej odpowiedzi, jeszcze zanim sprawdzisz dokładny numer. Kod zaczynający się od 2 oznacza, że zapytanie się powiodło, 3 oznacza konieczność podążenia za przekierowaniem, 4 oznacza, że coś było nie tak z samym zapytaniem, a 5 oznacza, że zawiódł serwer. Dlatego serwery, przeglądarki i klienty API często rozgałęziają logikę już na podstawie samej pierwszej cyfry, i warto wyrobić sobie ten nawyk, nawet jeśli ostatecznie potrzebny jest konkretny kod. Nie trzeba być programistą, żeby to się przydało: sporo zwykłych stron błędów pokazuje gołą liczbę, a ta lista zamienia ją w zdanie napisane po ludzku.