Przejdź do głównej treści
LibraTool logoLibraTool

Referencja kodów statusu HTTP za darmo

Przeszukiwalna referencja wszystkich kodów statusu HTTP — co oznacza każdy z nich, kiedy jest używany i typowe przyczyny. Od 100 do 511.

Działa offline po wczytaniu

61 kodów statusu

100

Dalej

Serwer otrzymał nagłówki żądania i klient powinien przystąpić do wysyłania treści.

Używane dla żądań z Expect: 100-continue. Serwer potwierdza, że jest gotów odebrać treść zanim klient ją wyśle. Rzadko spotykane w nowoczesnych aplikacjach internetowych.

RFC 9110 ↗
101

Przełączanie protokołów

Serwer przełącza protokoły zgodnie z żądaniem klienta.

Najczęściej używane do uaktualnień WebSocket — klient żąda Upgrade: websocket, a serwer odpowiada 101, aby przełączyć.

RFC 9110 ↗
102

Przetwarzanie

Serwer otrzymał żądanie i je przetwarza, ale odpowiedź nie jest jeszcze dostępna.

Tymczasowa odpowiedź WebDAV wysłana w celu zapobiegania upływowi limitu czasu klienta podczas długich operacji. Przestarzałe — nowoczesne serwery nie powinny jej wysyłać.

RFC 2518 ↗
103

Wczesne wskazówki

Wstępne nagłówki wysłane przed ostateczną odpowiedzią.

Umożliwia serwerom wysyłanie nagłówków Link (preload/preconnect) podczas gdy ostateczna odpowiedź jest jeszcze przygotowywana, aby przeglądarki mogły wcześniej zacząć pobierać krytyczne zasoby.

RFC 8297 ↗
200

OK

Żądanie powiodło się.

Standardowa odpowiedź o powodzeniu. Znaczenie zależy od metody HTTP: GET → zwrócony zasób, POST/PUT → działanie ukończone.

RFC 9110 ↗
201

Utworzono

Nowy zasób został pomyślnie utworzony.

Typowe po POST. Odpowiedź powinna zawierać nagłówek Location wskazujący na adres URL nowego zasobu.

RFC 9110 ↗
202

Zaakceptowano

Żądanie zostało zaakceptowane do przetworzenia, ale przetwarzanie nie zostało ukończone.

Dla operacji asynchronicznych — serwer stawia pracę w kolejce. Klient powinien odpytywać punkt końcowy stanu lub sprawdzić później.

RFC 9110 ↗
203

Informacja nie od głównego serwera

Odpowiedź została zmieniona przez transformujący serwer proxy.

Żądanie powiodło się, ale pośrednik (na przykład serwer proxy buforujący lub transformujący) zmienił ładunek z serwera źródłowego — na przykład ponownie kompresując obrazy. Rzadkie w praktyce.

RFC 9110 ↗
204

Brak zawartości

Żądanie powiodło się, ale nie ma treści odpowiedzi.

Często używane dla operacji DELETE lub aktualizacji PUT, które nie muszą zwracać treści. Klient nie powinien opuszczać bieżącej strony.

RFC 9110 ↗
205

Zresetuj zawartość

Żądanie powiodło się; klient powinien zresetować widok dokumentu.

Podobnie jak 204, treść nie jest zwracana — ale klientowi dodatkowo mówi się, aby zresetował formularz lub widok, który wytworzył żądanie (np. wyczyścił pola formularza dla następnego wpisu).

RFC 9110 ↗
206

Częściowa zawartość

Serwer dostarczył tylko część zasobu.

Odpowiedź na żądanie Range. Używane przez odtwarzacze wideo i menedżery pobierania do wznowienia przerwanych pobrań lub przesyłania strumieniowego dużych plików.

RFC 9110 ↗
207

Stan wielokrotny

Treść odpowiedzi zawiera wiele kodów stanu dla wielu operacji.

WebDAV: treść XML zawiera wynik kilku operacji podrzędnych niezależnie — np. przenoszenie wsadowe, gdzie niektóre elementy się powiodły, a inne nie.

RFC 4918 ↗
208

Już zgłoszono

Członkowie kolekcji zostali już wymienieni wcześniej w odpowiedzi.

WebDAV: używane wewnątrz odpowiedzi 207 Multi-Status, aby uniknąć wielokrotnego wymieniania członków tej samej kolekcji, gdy powiązania tworzą pętle.

RFC 5842 ↗
226

Wykorzystano IM

Odpowiedź jest wynikiem manipulacji instancją zastosowanej do zasobu.

Delta encoding: serwer zwraca różnicę w stosunku do poprzedniej wersji zamiast pełnego zasobu, oszczędzając przepustowość. Bardzo rzadko implementowane.

RFC 3229 ↗
300

Wiele wyborów

Dostępnych jest wiele reprezentacji zasobu.

Serwer oferuje wiele opcji (np. różne formaty lub języki) i klient powinien wybrać jedną. Rzadko używane, ponieważ automatyczne negocjowanie treści zwykle to obsługuje.

RFC 9110 ↗
301

Trwale przeniesiono

Zasób został trwale przeniesiony na nowy adres URL.

Użyj dla permanentnych zmian adresu URL — wyszukiwarki zaktualizują swój indeks. Autorytet SEO przenosi się na nowy adres URL.

RFC 9110 ↗
302

Znaleziono (tymczasowe przekierowanie)

Zasób znajduje się tymczasowo pod innym adresem URL.

Wskazuje, że przekierowanie nie jest stałe. Buforowanie jest mniej agresywne niż w przypadku 301. Używaj dla takich rzeczy jak 'wymagane logowanie, przekierowywanie do /login'.

RFC 9110 ↗
303

Patrz inne

Przekieruj na inny adres URL przy użyciu GET.

Używane po przesłanych formularzach POST — odpowiedź mówi 'twój POST się powiódł, zobacz ten adres URL GET, aby uzyskać wynik'. Przeglądarki zawsze pobierają nowy adres URL.

RFC 9110 ↗
304

Nie zmodyfikowano

Wersja buforowana jest nadal ważna; używaj jej.

Odpowiedź na warunkowe żądanie (z nagłówkami If-None-Match lub If-Modified-Since). Oszczędza przepustowość — treść nie jest zwracana.

RFC 9110 ↗
307

Tymczasowe przekierowanie

Jak 302, ale zachowuje oryginalną metodę HTTP.

Jeśli oryginalne żądanie było POST, przekierowanie również używa POST. Nowoczesna alternatywa dla 302, gdy zachowanie metody ma znaczenie.

RFC 9110 ↗
308

Permanentne przekierowanie

Jak 301, ale zachowuje oryginalną metodę HTTP.

Nowoczesna zamiana dla 301, gdy chcesz, aby żądania POST pozostały POST po przekierowaniu.

RFC 9110 ↗
400

Błędne żądanie

Serwer nie mógł zrozumieć żądania z powodu zniekształconej składni.

Częste przyczyny: nieprawidłowo sformułowany JSON w treści, nieprawidłowe parametry zapytania lub brakujące wymagane pola. Sprawdź treść i nagłówki żądania.

RFC 9110 ↗
401

Brak autoryzacji

Uwierzytelnianie jest wymagane i nie zostało dostarczone.

Klient musi dołączyć poświadczenia uwierzytelniające (nagłówek Authorization, plik cookie, token). 'Unauthorized' to błędna nazwa — naprawdę oznacza 'nieuwierzytelniony'.

RFC 9110 ↗
402

Wymagana płatność

Zarezerwowane na przyszłość — czasami używane dla płatnych poziomów API.

Pierwotnie przeznaczona dla płatności cyfrowych. Nowoczesne użycie: interfejsy API czasami zwracają 402, gdy użytkownik przekroczył swój płatny limit.

RFC 9110 ↗
403

Dostęp zabroniony

Klient jest uwierzytelniony, ale nie ma uprawnień.

Inaczej niż 401 — użytkownik JEST zalogowany, ale jego konto nie ma uprawnień do tego zasobu. Sprawdź logikę roli/uprawnień.

RFC 9110 ↗
404

Nie znaleziono

Żądany zasób nie istnieje.

Albo adres URL jest nieprawidłowy, albo zasób został usunięty, albo nigdy nie istniał. Serwery czasami zwracają 404, aby ukryć, że 403 byłoby dokładniejsze.

RFC 9110 ↗
405

Metoda niedozwolona

Użyta metoda HTTP nie jest dozwolona dla tego zasobu.

Na przykład żądanie GET do punktu końcowego, który akceptuje tylko POST. Odpowiedź powinna zawierać nagłówek Allow wymieniający prawidłowe metody.

RFC 9110 ↗
406

Nieakceptowalne

Brak reprezentacji spełniającej nagłówki Accept klienta.

Klient poprosił o typ zawartości, język lub kodowanie (przez Accept, Accept-Language, Accept-Encoding), których serwer nie może spełnić. Wiele serwerów pomija ścisłe negocjowanie i zwraca domyślnie.

RFC 9110 ↗
407

Wymagane uwierzytelnianie serwera proxy

Klient musi się uwierzytelnić w serwerze proxy.

Podobnie jak 401, ale wystawione przez serwer proxy: klient musi wysłać poświadczenia Proxy-Authorization. Widoczne w sieciach korporacyjnych z autentykującymi serwerami proxy.

RFC 9110 ↗
408

Limit czasu żądania

Serwer przekroczył limit czasu czekania na żądanie.

Klient zbyt długo wysyłał treść żądania lub utrzymywał połączenie w stanie bezczynności. Spróbuj wysłać żądanie ponownie.

RFC 9110 ↗
409

Konflikt

Żądanie powoduje konflikt z bieżącym stanem zasobu.

Zwykle zwracane przy konfliktach edycji współbieżnej lub tworzeniu duplikatu zasobu (np. tworzenie użytkownika z e-mailem, który już istnieje).

RFC 9110 ↗
410

Zniknęło

Zasób został usunięty i nie powróci.

Silniejsze niż 404 — serwer wyraźnie wie, że zasób KIEDYŚ istniał, ale został trwale usunięty. Wyszukiwarki będą go deindeksować.

RFC 9110 ↗
411

Wymagana długość

Serwer wymaga nagłówka Content-Length.

Żądanie zostało odrzucone, ponieważ brakowało mu nagłówka Content-Length, a serwer odmawia treści o nieznanym rozmiarze. Dodaj nagłówek i spróbuj ponownie.

RFC 9110 ↗
412

Warunek wstępny nie powiódł się

Warunek w nagłówkach żądania nie został spełniony.

Zwracane, gdy nagłówki warunkowe takie jak If-Match lub If-Unmodified-Since nie powiodą się — zwykle optymistyczne blokowanie: ktoś inny zmienił zasób od Twojej wersji. Pobierz ponownie i spróbuj jeszcze raz.

RFC 9110 ↗
413

Ładunek zbyt duży

Treść żądania przekracza limit rozmiaru serwera.

Powszechne przy przesyłaniu dużych plików. Konfiguracja serwera (nginx, apache) określa maksymalny rozmiar treści. Sprawdź konfigurację serwera.

RFC 9110 ↗
414

Adres URI zbyt długi

Adres URL żądania przekracza limit długości serwera.

Zwykle powodowane bardzo długimi ciągami zapytań (np. kodowanie danych w GET). Przełącz na treść POST lub zwiększ limit serwera, jeśli go kontrolujesz.

RFC 9110 ↗
415

Nieobsługiwany typ mediów

Serwer nie może obsługiwać wysłanego Content-Type.

Na przykład wysyłanie application/xml do serwera, który akceptuje tylko application/json. Ustaw nagłówek Content-Type prawidłowo.

RFC 9110 ↗
416

Zakres nie do spełnienia

Żądany zakres bajtów znajduje się poza rozmiarem zasobu.

Nagłówek Range żąda części, której plik nie ma — np. wznowienie pobierania poza koniec pliku. Odpowiedź powinna zawierać Content-Range z rzeczywistym rozmiarem.

RFC 9110 ↗
417

Oczekiwanie nie powiodło się

Serwer nie może spełnić wymagań nagłówka Expect.

Wysłane, gdy serwer nie obsługuje Expect: 100-continue. Niektórzy klienci wysyłają ten nagłówek domyślnie przy dużych żądaniach POST; jego wyłączenie zwykle rozwiązuje błąd.

RFC 9110 ↗
418

Jestem czajnikiem

Serwer odmawia parzenia kawy, ponieważ jest czajnikiem.

Żart z Dnia Głupich z 1998 roku (RFC 2324). Niektóre rzeczywiste interfejsy API go używają do żartów lub oznaczenia przestarzałych punktów końcowych. Nie do użytku w produkcji.

RFC 2324 ↗
421

Żądanie źle skierowane

Żądanie zostało wysłane do serwera, który nie może na nie odpowiedzieć.

Powszechne przy ponownym użyciu połączenia HTTP/2: żądanie dotarło do serwera, który nie jest skonfigurowany dla nazwy hosta docelowego. Klient powinien spróbować ponownie na nowym połączeniu.

RFC 9110 ↗
422

Nieprzetwarzalna treść

Żądanie było składniowo poprawne, ale semantycznie nieprawidłowe.

Na przykład JSON został prawidłowo przeanalizowany, ale brakuje wymaganego pola lub wartość pola jest poza zakresem. Powszechne w odpowiedziach walidacji REST API.

RFC 9110 ↗
423

Zablokowane

Zasób jest zablokowany.

WebDAV: źródło lub zasób docelowy jest zablokowany przez innego klienta, więc operacja nie może być kontynuowana. Czekaj, aż blokada zostanie zwolniona, lub przerwij ją za pomocą odpowiedniego tokenu.

RFC 4918 ↗
424

Nieudana zależność

Żądanie nie powiodło się, ponieważ poprzednie żądanie zależne nie powiodło się.

WebDAV: w łańcuchu zależnych operacji wcześniejsza akcja nie powiodła się, więc ta nie została wykonana. Sprawdź wcześniejszy błąd, aby znaleźć przyczynę.

RFC 4918 ↗
425

Za wcześnie

Serwer odmawia przetwarzania żądania, które może być powtórzone.

Odnosi się do TLS 1.3 0-RTT (dane wczesne): serwer nie będzie ryzykować przetwarzania możliwego powtórzonego żądania. Klient powinien spróbować ponownie po zakończeniu uzgadniania.

RFC 8470 ↗
426

Wymagane uaktualnienie

Klient musi przełączyć się na inny protokół.

Serwer odmawia obsłużenia żądania przez bieżący protokół, ale zrobi to po uaktualnieniu — odpowiedź zawiera nagłówek Upgrade wskazujący wymagany protokół.

RFC 9110 ↗
428

Wymagany warunek wstępny

Serwer wymaga, aby żądanie było warunkowe.

Serwer żąda nagłówków warunkowych (takich jak If-Match), aby zapobiec konfliktom utraconej aktualizacji. Pobierz zasób, przechwyć jego ETag i wyślij ponownie z If-Match.

RFC 6585 ↗
429

Zbyt wiele żądań

Klient jest ograniczany szybkością.

Zwolnij. Odpowiedź powinna zawierać nagłówek Retry-After wskazujący, kiedy spróbować ponownie. Powszechne z interfejsami API o limitach żądań.

RFC 6585 ↗
431

Pola nagłówka żądania zbyt duże

Nagłówki są zbyt duże, aby serwer mógł je przetworzyć.

Jeden nagłówek lub całkowity rozmiar nagłówka przekracza limit — najczęściej powodowane zbyt dużymi plikami cookie. Wyczyść pliki cookie lub zmniejsz, co Twoja aplikacja w nich przechowuje.

RFC 6585 ↗
451

Niedostępne z przyczyn prawnych

Dostęp zablokowany z powodu żądań prawnych.

Zasób jest blokowany z powodów prawnych — cenzura, nakazy sądowe lub przepisy regionalne. Numer to nawiązanie do powieści Fahrenheit 451.

RFC 7725 ↗
500

Wewnętrzny błąd serwera

Serwer napotkał nieoczekiwany warunek.

Ogólny komunikat zbiorczy dla błędów po stronie serwera. Sprawdzaj dzienniki serwera, aby znaleźć rzeczywistą przyczynę: nieobsługiwany wyjątek, błąd bazy danych itp.

RFC 9110 ↗
501

Niezaimplementowane

Serwer nie obsługuje żądanej funkcjonalności.

Na przykład serwer nie rozpoznaje metody HTTP. Rzadko w praktyce — częściej zobaczysz 405.

RFC 9110 ↗
502

Zła brama

Serwer, działając jako brama, otrzymał złą odpowiedź od serwera nadrzędnego.

Powszechne w architekturach mikroserwisów. Twój moduł równoważenia obciążenia lub zwrotny serwer proxy otrzymał źle sformułowaną odpowiedź z serwisu wewnętrznego.

RFC 9110 ↗
503

Serwis niedostępny

Serwer tymczasowo nie może obsługiwać żądania.

Albo jest w trakcie konserwacji, albo przeciążony. Odpowiedź powinna zawierać nagłówek Retry-After. Często zwracane podczas wdrożeń.

RFC 9110 ↗
504

Limit czasu bramy

Brama przekroczyła limit czasu czekania na odpowiedź z serwera nadrzędnego.

Serwis wewnętrzny nie odpowiadał wystarczająco szybko. Sprawdzaj kondycję serwera nadrzędnego i konfiguracje limitów czasu.

RFC 9110 ↗
505

Wersja HTTP nieobsługiwana

Serwer nie obsługuje wersji HTTP używanej w żądaniu.

Główna wersja HTTP żądania nie jest obsługiwana przez serwer. Prawie nigdy się nie widzi u nowoczesnych klientów.

RFC 9110 ↗
506

Wariant również negocjuje

Serwer ma błędną konfigurację negocjacji treści.

Negocjacja transparentna treści zakończyła się pętlą: wybrany wariant sam jest skonfigurowany do negocjacji. Wskazuje na błąd konfiguracji serwera.

RFC 2295 ↗
507

Niewystarczająca pamięć masowa

Serwerowi zabrakło miejsca na dysku.

Pochodzenie specyficzne dla WebDAV, ale czasami używane przez serwery ogólne. Oznacza, że serwer nie może zapisać żądania z powodu ograniczeń pamięci.

RFC 4918 ↗
508

Pętla wykryta

Serwer wykrył nieskończoną pętlę podczas przetwarzania żądania.

WebDAV: przetwarzanie żądania Depth: infinity weszło w pętlę (np. powiązania cykliczne). Operacja została przerwana.

RFC 5842 ↗
510

Nie rozszerzono

Wymagane dalsze rozszerzenia do żądania.

Z przestarzałej struktury rozszerzeń HTTP: serwer potrzebuje więcej informacji, zanim będzie mógł spełnić żądanie. Praktycznie nieużywane w nowoczesnym Internecie.

RFC 2774 ↗
511

Wymagane uwierzytelnianie sieciowe

Klient musi się uwierzytelnić, aby uzyskać dostęp do sieci.

Używane przez portale captive (hotel/lotnisko WiFi), aby wskazać, że użytkownik musi się zalogować do sieci przed dostępem do witryn zewnętrznych.

RFC 6585 ↗

Typowe zastosowania

  • Odniesienie do Projektowania APIPrzy projektowaniu API REST, wybierz prawidłowy kod stanu dla każdej odpowiedzi.
  • Szybko Wyszukuj Kody BłędówGdy twoja aplikacja zwraca mylący błąd HTTP, wyszukaj co to faktycznie oznacza.
  • Naucz Się Kodów Stanu HTTPKompleksowe odniesienie dla studentów i deweloperów uczących się HTTP i REST.
  • Szybkie Odniesienie Podczas IncydentówPodczas incydentów produkcyjnych, szybko wyszukaj co oznacza każdy kod stanu.
  • Odniesienie dla dokumentacji APIPodczas pisania dokumentacji API linkuj do autorytatywnych opisów kodów stanu, które zwracasz.

Jak to działa

To narzędzie to podręczne kompendium działające po stronie klienta, oparte na wpisanej na stałe tabeli 63 kodów stanu HTTP ze wszystkich pięciu klas (1xx–5xx), każdy z numerem definiującego go dokumentu RFC. Nie ma wywołań serwera, zewnętrznego API ani żądań sieciowych — całe filtrowanie i wyświetlanie odbywa się w przeglądarce za pomocą wbudowanych metod tablic i ciągów w JavaScript.

  1. 1
    Wczytanie tabeli
    Pełny zestaw 63 kodów stanu zarejestrowanych w IANA jest osadzony bezpośrednio w narzędziu jako tablica JavaScript; każdy wpis zawiera kod liczbowy, kanoniczną angielską nazwę, klasę kategorii i konkretny RFC, który go definiuje (np. RFC 9110 dla większości kodów HTTP/1.1, RFC 6585 dla 429 Too Many Requests, RFC 2324 dla 418 I'm a Teapot).
  2. 2
    Filtrowanie w pamięci
    Podczas wpisywania lub wybierania filtra kategorii Array.filter w JavaScript działa na liście w pamięci, dopasowując zapytanie do numeru kodu, kanonicznej nazwy oraz krótkiego i długiego opisu za pomocą String.includes — bez opóźnień i odwołań do serwera.
  3. 3
    Szczegóły z linkiem do RFC
    Każdy wynik jest renderowany jako element HTML details/summary. Rozwinięcie wpisu pokazuje szczegółowe wyjaśnienie i bezpośredni link do oficjalnego RFC na rfc-editor.org, więc możesz przeczytać dokładny tekst specyfikacji dowolnego kodu.
  4. 4
    Bezpośrednie linki i kopiowanie do schowka
    Otwarcie wpisu aktualizuje hash adresu URL na numer kodu (np. #404), dzięki czemu stronę łatwo udostępnić i zapisać w zakładkach. Przycisk kopiowania zapisuje kanoniczny ciąg (np. „404 Not Found”) do schowka przez API navigator.clipboard przeglądarki.

Powiązane narzędzia

Często zadawane pytania