Kody statusu HTTP to sposób, w jaki internet komunikuje się między serwerami a klientami. Za każdym razem, gdy przeglądarka wysyła żądanie strony internetowej, API wykonuje wywołanie lub serwer przetwarza dane, te trzycyfrowe kody informują Cię dokładnie, co się wydarzyło. Zrozumienie tych kodów jest niezbędne dla programistów stron internetowych, specjalistów SEO i każdego, kto pracuje z technologiami internetowymi.
Ten kompletny przewodnik obejmuje wszystkie standardowe kody statusu HTTP od 100 do 511, uporządkowane według kategorii. Każdy kod statusu zawiera praktyczne wyjaśnienia, rzeczywiste przypadki użycia, wskazówki dotyczące implementacji oraz typowe błędy, których należy unikać.
Szybki przegląd kodów statusu HTTP
| Kod statusu | Nazwa | Kategoria | Przejdź do |
|---|---|---|---|
| 100 | Continue | Informacyjny | Szczegóły |
| 101 | Switching Protocols | Informacyjny | Szczegóły |
| 102 | Processing | Informacyjny | Szczegóły |
| 103 | Early Hints | Informacyjny | Szczegóły |
| 200 | OK | Sukces | Szczegóły |
| 201 | Created | Sukces | Szczegóły |
| 202 | Accepted | Sukces | Szczegóły |
| 203 | Non-Authoritative Information | Sukces | Szczegóły |
| 204 | No Content | Sukces | Szczegóły |
| 205 | Reset Content | Sukces | Szczegóły |
| 206 | Partial Content | Sukces | Szczegóły |
| 207 | Multi-Status | Sukces | Szczegóły |
| 208 | Already Reported | Sukces | Szczegóły |
| 226 | IM Used | Sukces | Szczegóły |
| 300 | Multiple Choices | Przekierowanie | Szczegóły |
| 301 | Moved Permanently | Przekierowanie | Szczegóły |
| 302 | Found | Przekierowanie | Szczegóły |
| 303 | See Other | Przekierowanie | Szczegóły |
| 304 | Not Modified | Przekierowanie | Szczegóły |
| 305 | Use Proxy (Deprecated) | Przekierowanie | Szczegóły |
| 307 | Temporary Redirect | Przekierowanie | Szczegóły |
| 308 | Permanent Redirect | Przekierowanie | Szczegóły |
| 400 | Bad Request | Błąd klienta | Szczegóły |
| 401 | Unauthorized | Błąd klienta | Szczegóły |
| 403 | Forbidden | Błąd klienta | Szczegóły |
| 404 | Not Found | Błąd klienta | Szczegóły |
| 405 | Method Not Allowed | Błąd klienta | Szczegóły |
| 406 | Not Acceptable | Błąd klienta | Szczegóły |
| 407 | Proxy Authentication Required | Błąd klienta | Szczegóły |
| 408 | Request Timeout | Błąd klienta | Szczegóły |
| 409 | Conflict | Błąd klienta | Szczegóły |
| 410 | Gone | Błąd klienta | Szczegóły |
| 418 | I’m a teapot | Błąd klienta | Szczegóły |
| 422 | Unprocessable Entity | Błąd klienta | Szczegóły |
| 429 | Too Many Requests | Błąd klienta | Szczegóły |
| 451 | Unavailable For Legal Reasons | Błąd klienta | Szczegóły |
| 500 | Internal Server Error | Błąd serwera | Szczegóły |
| 501 | Not Implemented | Błąd serwera | Szczegóły |
| 502 | Bad Gateway | Błąd serwera | Szczegóły |
| 503 | Service Unavailable | Błąd serwera | Szczegóły |
| 504 | Gateway Timeout | Błąd serwera | Szczegóły |
| 505 | HTTP Version Not Supported | Błąd serwera | Szczegóły |
| 507 | Insufficient Storage | Błąd serwera | Szczegóły |
| 508 | Loop Detected | Błąd serwera | Szczegóły |
| 511 | Network Authentication Required | Błąd serwera | Szczegóły |
Odpowiedzi informacyjne 1xx
Te kody wskazują, że żądanie zostało odebrane i proces jest kontynuowany.
Czym jest kod statusu 100?
HTTP: 100 Continue
Kiedy i dlaczego serwery go zwracają: Serwer mówi “Otrzymałem pierwszą część Twojego żądania i jak dotąd wygląda dobrze - wyślij resztę!” Dzieje się tak, gdy próbujesz przesłać coś dużego (jak wideo), a serwer chce sprawdzić, czy masz uprawnienia do przesłania, zanim zmarnujesz czas na wysyłanie całego pliku.
Praktyczne przypadki użycia: Przesyłanie dużych plików do przechowywania w chmurze, gdzie serwer najpierw sprawdza, czy masz wystarczająco dużo miejsca, wysyłanie dużych formularzy, gdzie serwer weryfikuje Twoje logowanie przed przyjęciem wszystkich danych, lub każda sytuacja, w której sensowne jest sprawdzenie uprawnień przed przesłaniem dużej ilości danych.
Jak klienci powinni reagować na ten status: Twoja przeglądarka lub aplikacja powinna natychmiast zacząć wysyłać resztę danych. Większość czasu dzieje się to automatycznie w tle - nawet nie zauważysz, że to się dzieje.
Niewłaściwe użycie lub nieprawidłowe implementacje: Wysyłanie tego do starych przeglądarek, które tego nie rozumieją, wysyłanie go losowo, gdy nikt o to nie prosił, lub zapominanie o sprawdzeniu, czy klient faktycznie chce tego dwuetapowego procesu przed jego użyciem.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 101?
HTTP: 101 Switching Protocols
Kiedy i dlaczego serwery go zwracają: Serwer zgadza się zmienić sposób komunikacji z Tobą. To jak przejście od wysyłania SMS-ów do rozmowy telefonicznej - poprosiłeś o ulepszenie połączenia, a serwer powiedział “Jasne, zróbmy to!”
Praktyczne przypadki użycia: Gdy aplikacja czatu przechodzi z normalnego HTTP na WebSocket dla przesyłania wiadomości w czasie rzeczywistym, gdy przeglądarka prosi o użycie szybszej wersji HTTP, lub gdy jakakolwiek aplikacja musi przełączyć się na inną metodę komunikacji dla lepszych funkcji.
Jak klienci powinni reagować na ten status: Natychmiast zacznij używać nowego protokołu komunikacji. To jak zmiana języka w trakcie rozmowy - gdy oboje się zgodzicie, od razu zaczynasz mówić nowym językiem.
Niewłaściwe użycie lub nieprawidłowe implementacje: Przełączanie bez prośby, próba przełączenia na coś, czego serwer faktycznie nie obsługuje, lub zapominanie o określeniu, na który protokół się przełączasz.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 102?
HTTP: 102 Processing
Kiedy i dlaczego serwery go zwracają: Serwer mówi “Nadal pracuję nad Twoim żądaniem - nie rezygnuj ze mnie!” Jest używany, gdy coś trwa naprawdę długo, więc serwer wysyła tę wiadomość, aby zapobiec myśleniu, że się zawiesił.
Praktyczne przypadki użycia: Konwersja dużego pliku wideo na inny format, przetwarzanie setek plików na raz, generowanie złożonych raportów, które zajmują minuty, lub każda operacja, która trwa dłużej niż zwykle.
Jak klienci powinni reagować na ten status: Cierpliwie czekaj. Serwer może wysłać kilka takich komunikatów “nadal pracuję” zanim w końcu da Ci faktyczny wynik. Nie próbuj ponownie - to tylko uruchomiłoby cały proces od nowa.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie tego do szybkich operacji, które tego nie potrzebują, wysyłanie zbyt wielu komunikatów “nadal pracuję”, lub zapominanie o wysłaniu końcowej odpowiedzi po powiedzeniu, że przetwarzasz.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 103?
HTTP: 103 Early Hints
Kiedy i dlaczego serwery go zwracają: Serwer daje Ci podpowiedź o zasobach, które prawdopodobnie wkrótce będą Ci potrzebne. To jak restauracja mówiąca “podczas gdy przygotowuję Twoje zamówienie, możesz przygotować sobie serwetki i sztućce.”
Praktyczne przypadki użycia: Informowanie przeglądarek, aby zaczęły ładować pliki CSS i JavaScript, podczas gdy serwer przygotowuje HTML, wstępne ładowanie czcionek, których strona będzie potrzebować, lub rozgrzewanie połączeń z innymi serwerami, których strona będzie używać.
Jak klienci powinni reagować na ten status: Zacznij ładować sugerowane zasoby w tle podczas oczekiwania na prawdziwą odpowiedź. To sprawia, że strony wydają się szybsze, ponieważ część pracy zaczyna się wcześnie.
Niewłaściwe użycie lub nieprawidłowe implementacje: Wysyłanie wskazówek, ale nigdy nie wysyłanie faktycznej odpowiedzi, sugerowanie zasobów, które faktycznie nie są potrzebne, lub przeciążanie klienta zbyt wieloma niepotrzebnymi wskazówkami wstępnego ładowania.
Dokumentacja Mozilla.org dla dodatkowej referencji
Sukces 2xx
Te kody wskazują, że żądanie zostało pomyślnie odebrane, zrozumiane i zaakceptowane.
Czym jest kod statusu 200?
HTTP: 200 OK
Kiedy i dlaczego serwery go zwracają: To jest odpowiedź “wszystko zadziałało idealnie”. Serwer znalazł to, czego chciałeś, zrobił to, o co prosiłeś, i oto Twój wynik. To najczęstsza wiadomość o sukcesie, którą zobaczysz.
Praktyczne przypadki użycia: Pomyślne załadowanie dowolnej strony internetowej, pobieranie danych z API, pobieranie pliku, wysyłanie formularza, który zadziałał poprawnie, lub w zasadzie za każdym razem, gdy żądanie się powiedzie bez żadnych problemów.
Jak klienci powinni reagować na ten status: Użyj danych, które wróciły - pokaż stronę internetową, przetwórz dane JSON, zapisz plik lub cokolwiek ma sens dla Twojej aplikacji. To jest “normalna” odpowiedź, którą wszystko jest zaprojektowane do obsługi.
Niewłaściwe użycie lub nieprawidłowe implementacje: Mówienie “200 OK”, ale zawieranie komunikatu o błędzie w odpowiedzi (mylące!), używanie 200, gdy utworzyłeś coś nowego (zamiast tego użyj 201), lub zwracanie 200 bez danych, gdy dane były oczekiwane.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 201?
HTTP: 201 Created
Kiedy i dlaczego serwery go zwracają: Serwer pomyślnie utworzył coś nowego na podstawie Twojego żądania. To nie jest tylko “OK” - to specjalnie “Stworzyłem nową rzecz, o którą prosiłeś!”
Praktyczne przypadki użycia: Tworzenie nowego konta użytkownika, publikowanie nowego tweeta lub statusu, przesyłanie pliku, który zostaje zapisany jako nowy zasób, dodawanie nowego produktu do koszyka, lub za każdym razem, gdy Twoje żądanie skutkuje zapisaniem czegoś nowego.
Jak klienci powinni reagować na ten status: Szukaj nagłówka Location, który zwykle mówi Ci, gdzie znaleźć nowo utworzoną rzecz. Możesz przekierować do nowego zasobu lub zaktualizować swój interfejs, aby pokazać, że tworzenie się powiodło.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 201 podczas aktualizowania istniejących rzeczy (do tego służy 200), zapominanie o dołączeniu lokalizacji nowego zasobu, lub używanie 201, gdy nic faktycznie nie zostało utworzone.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 202?
HTTP: 202 Accepted
Kiedy i dlaczego serwery go zwracają: Serwer zaakceptował Twoje żądanie, ale jeszcze nie skończył go przetwarzać. To jak oddanie ubrań do pralni - wzięli Twoje ubrania i dali Ci pokwitowanie, ale czyszczenie jeszcze nie jest gotowe.
Praktyczne przypadki użycia: Wysyłanie e-maili (zaakceptowane do dostarczenia, ale jeszcze nie wysłane), rozpoczynanie dużego eksportu danych, który zostanie wysłany e-mailem, gdy będzie gotowy, zadania przetwarzania wideo lub każde zadanie, które jest kolejkowane do późniejszego przetworzenia.
Jak klienci powinni reagować na ten status: Nie oczekuj natychmiastowych wyników. Będziesz potrzebować innego sposobu, aby sprawdzić, czy zadanie jest ukończone - może odpytywać inny endpoint, czekać na e-mail lub sprawdzić powiadomienie webhook.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 202 do rzeczy, które już się zakończyły, nieprzewidywanie żadnego sposobu sprawdzenia statusu później, lub używanie 202, gdy zadanie może się nie powieść (bez ostrzeżenia klienta o tej możliwości).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 203?
HTTP: 203 Non-Authoritative Information
Kiedy i dlaczego serwery go zwracają: Żądanie się powiodło, ale odpowiedź została zmodyfikowana przez coś pośrodku (jak proxy lub cache). To jak zabawa w głuchy telefon - wiadomość dotarła, ale mogła się nieznacznie zmienić po drodze.
Praktyczne przypadki użycia: Gdy firmowe proxy dodaje lub usuwa pewne nagłówki, gdy serwer cache modyfikuje odpowiedzi, aby oszczędzić przepustowość, lub gdy filtry treści dostosowują to, co widzisz, na podstawie zasad.
Jak klienci powinni reagować na ten status: Używaj odpowiedzi normalnie, ale wiedz, że może nie być dokładnie taka, jaką wysłał oryginalny serwer. Nadal jest ważna, tylko potencjalnie zmodyfikowana.
Niewłaściwe użycie lub nieprawidłowe implementacje: Brak przejrzystości co do modyfikacji, używanie 203, gdy nic faktycznie nie zostało zmienione, lub modyfikowanie odpowiedzi w sposób, który psuje funkcjonalność.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 204?
HTTP: 204 No Content
Kiedy i dlaczego serwery go zwracają: Serwer pomyślnie zrobił to, o co prosiłeś, ale nie ma nic do odesłania. To jak pomyślne usunięcie czegoś - usunięcie zadziałało, ale nie ma nic do pokazania, ponieważ to zniknęło!
Praktyczne przypadki użycia: Usuwanie rekordów, aktualizowanie ustawień, gdzie nie potrzebujesz danych potwierdzających z powrotem, zapisywanie preferencji w tle w ciszy, lub każda udana akcja, gdzie treść odpowiedzi byłaby bezcelowa.
Jak klienci powinni reagować na ten status: Traktuj to jako sukces, ale nie oczekuj żadnych danych. Idealne dla żądań AJAX, gdzie potrzebujesz tylko wiedzieć, że coś zadziałało. Strona nie powinna się odświeżać ani zmieniać, chyba że Twój JavaScript zdecyduje coś zaktualizować.
Niewłaściwe użycie lub nieprawidłowe implementacje: Dołączanie danych odpowiedzi z 204 (to nie jest dozwolone!), używanie 204, gdy klient prawdopodobnie chce zobaczyć zaktualizowane dane, lub używanie 204 dla błędów.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 205?
HTTP: 205 Reset Content
Kiedy i dlaczego serwery go zwracają: Serwer informuje Twoją aplikację, aby wyczyściła swój formularz lub zresetowała swój widok. To jak pomyślne wysłanie ankiety i automatyczne wyczyszczenie formularza dla następnej osoby.
Praktyczne przypadki użycia: Po wysłaniu formularza wprowadzania danych, który musi być używany wielokrotnie, ukończeniu ankiety, która powinna się zresetować dla następnego respondenta, lub każdej sytuacji, w której interfejs powinien wrócić do stanu początkowego po sukcesie.
Jak klienci powinni reagować na ten status: Wyczyść wszystkie pola formularza, zresetuj widok dokumentu lub przywróć interfejs do jego oryginalnego stanu. Z tą odpowiedzią nie przychodzą żadne dane - to tylko instrukcja do zresetowania.
Niewłaściwe użycie lub nieprawidłowe implementacje: Wysyłanie danych z odpowiedzią 205 (powinna być pusta), używanie 205, gdy faktycznie nie chcesz, aby formularz został wyczyszczony, lub używanie go, gdy prosty 204 byłby lepszy.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 206?
HTTP: 206 Partial Content
Kiedy i dlaczego serwery go zwracają: Serwer wysyła tylko część pliku, ponieważ o to właśnie prosiłeś. To jak proszenie o strony 50-60 książki zamiast całej książki.
Praktyczne przypadki użycia: Przesyłanie strumieniowe wideo, gdzie możesz przeskakiwać do różnych części, wznawianie przerwanych pobierań od miejsca, w którym zostały zatrzymane, pobieranie dużych plików w częściach lub efektywne wdrażanie funkcji “załaduj więcej”.
Jak klienci powinni reagować na ten status: Przetwarzaj częściową zawartość i potencjalnie żądaj więcej części, jeśli jest to potrzebne. Odtwarzacze wideo używają tego do przeszukiwania, a menedżery pobierania używają tego do wznawiania.
Niewłaściwe użycie lub nieprawidłowe implementacje: Wysyłanie 206, gdy nikt nie prosił o częściową zawartość, wysyłanie niewłaściwego zakresu bajtów, brak obsługi żądań zakresu, gdy byłyby pomocne, lub psucie nagłówków Content-Range.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 207?
HTTP: 207 Multi-Status
Kiedy i dlaczego serwery go zwracają: Wykonano wiele operacji i każda ma swój własny wynik. To jak wysyłanie partii aplikacji o pracę i otrzymywanie indywidualnych odpowiedzi dla każdej z nich w jednej kopercie.
Praktyczne przypadki użycia: Operacje zbiorcze, w których aktualizujesz wiele elementów naraz, operacje WebDAV na wielu plikach, żądania API wsadowe lub za każdym razem, gdy musisz zgłosić indywidualne wyniki dla wielu operacji.
Jak klienci powinni reagować na ten status: Przeanalizuj treść odpowiedzi (zwykle XML), aby zobaczyć indywidualny wynik dla każdej operacji. Niektóre mogły się powieść, podczas gdy inne zawiodły, i musisz obsłużyć każdą odpowiednio.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 207 dla pojedynczych operacji, nieprawidłowe strukturyzowanie odpowiedzi multi-status lub używanie go, gdy wszystkie operacje miały ten sam wynik (po prostu użyj tego pojedynczego kodu statusu).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 208?
HTTP: 208 Already Reported
Kiedy i dlaczego serwery go zwracają: W odpowiedzi multi-status oznacza to, że informacje o tym zasobie zostały już uwzględnione wcześniej. To jak mówienie “zobacz powyżej”, aby uniknąć powtarzania się.
Praktyczne przypadki użycia: Podczas wyświetlania zawartości katalogów, które zawierają dowiązania symboliczne, zapobieganie nieskończonym pętlom w operacjach rekurencyjnych lub unikanie zduplikowanych informacji w złożonych odpowiedziach WebDAV.
Jak klienci powinni reagować na ten status: Pomiń przetwarzanie tego zasobu, ponieważ już obsłużyłeś go wcześniej w odpowiedzi. To zapobiega podwójnemu przetwarzaniu i nieskończonym pętlom.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 208 poza właściwymi kontekstami multi-status, oznaczanie rzeczy jako “już zgłoszone”, gdy tak nie było, lub tworzenie mylących odpowiedzi przez nadużywanie tego statusu.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 226?
HTTP: 226 IM Used
Kiedy i dlaczego serwery go zwracają: Serwer zastosował jedną lub więcej transformacji do odpowiedzi. To jak zamawianie dokumentu i otrzymywanie skompresowanej lub zoptymalizowanej wersji, aby zaoszczędzić przepustowość.
Praktyczne przypadki użycia: Kodowanie delta, gdzie wysyłane są tylko zmiany od ostatniego razu, systemy kompresji, które transformują treść w locie, lub każda transformacja oszczędzająca przepustowość, o którą poprosił klient.
Jak klienci powinni reagować na ten status: Przetwarzaj przekształconą zawartość przy użyciu metody wskazanej w nagłówkach. Klient musi rozumieć transformację, aby prawidłowo użyć odpowiedzi.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 226 bez wskazania, jakie transformacje zostały zastosowane, stosowanie transformacji, o które klient nie prosił, lub używanie 226 dla standardowej kompresji (która nie potrzebuje specjalnego statusu).
Dokumentacja Mozilla.org dla dodatkowej referencji
Przekierowanie 3xx
Te kody wskazują, że dalsze działania muszą zostać podjęte, aby ukończyć żądanie.
Czym jest kod statusu 300?
HTTP: 300 Multiple Choices
Kiedy i dlaczego serwery go zwracają: Istnieje wiele wersji żądanego zasobu, a serwer nie może automatycznie wybrać jednej. To jak proszenie o “instrukcję”, gdy istnieją wersje w różnych językach.
Praktyczne przypadki użycia: Gdy treść jest dostępna w wielu językach lub formatach, gdy istnieją różne wersje dla różnych urządzeń, lub gdy serwer naprawdę nie może zdecydować, której wersji chcesz.
Jak klienci powinni reagować na ten status: Przedstaw wybory użytkownikowi lub wybierz jeden na podstawie preferencji (jak ustawienia języka). Odpowiedź powinna wymieniać wszystkie dostępne opcje.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 300, gdy serwer mógłby rozsądnie wybrać wartość domyślną, nie przedstawianie wyraźnie dostępnych wyborów, lub używanie go do prostych przekierowań (zamiast tego użyj 301/302).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 301?
HTTP: 301 Moved Permanently
Kiedy i dlaczego serwery go zwracają: Zasób został trwale przeniesiony pod nowy adres. To jak gdy firma przenosi się do nowej lokalizacji i umieszcza stały znak przekierowania - zaktualizuj swoją książkę adresową!
Praktyczne przypadki użycia: Gdy strony internetowe trwale restrukturyzują swoje adresy URL, przejście z HTTP na HTTPS, gdy firmy zmieniają markę i zmieniają domeny, lub konsolidacja wielu stron w jedną dla lepszej organizacji.
Jak klienci powinni reagować na ten status: Automatycznie przejdź do nowego adresu URL i zapamiętaj go na następny raz. Przeglądarki aktualizują zakładki, a wyszukiwarki aktualizują swoje indeksy, aby wskazywały nową lokalizację.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 301 do tymczasowych przeniesień (zamiast tego użyj 302), tworzenie łańcuchów przekierowań, które odbijają użytkowników, lub używanie 301, gdy możesz chcieć to zmienić później.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 302?
HTTP: 302 Found
Kiedy i dlaczego serwery go zwracają: Zasób jest tymczasowo w innej lokalizacji. To jak znak sklepu mówiący “Dzisiaj jesteśmy na targu” - jutro wrócą do swojego normalnego miejsca.
Praktyczne przypadki użycia: Przekierowywanie użytkowników podczas konserwacji witryny, testy A/B, gdzie niektórzy użytkownicy przechodzą do innej wersji, sezonowe promocje, które przekierowują do specjalnych stron, lub równoważenie obciążenia między serwerami.
Jak klienci powinni reagować na ten status: Na razie przejdź do tymczasowej lokalizacji, ale zachowaj oryginalny adres URL do przyszłych żądań. Nie aktualizuj zakładek ani stałych odniesień.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 302 do stałych przeniesień (użyj 301 dla tych), tworzenie pętli przekierowań, gdzie A wysyła do B, a B odsyła do A, lub używanie 302, gdy konkretnie musisz zachować metodę HTTP (użyj 307).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 303?
HTTP: 303 See Other
Kiedy i dlaczego serwery go zwracają: Po przetworzeniu Twojego żądania (zwykle POST), serwer chce, abyś spojrzał na inną stronę używając GET. To jak wysłanie formularza i przekierowanie na stronę “dziękujemy”.
Praktyczne przypadki użycia: Po wysłaniu formularza przekieruj na stronę potwierdzenia; po dokonaniu płatności przekieruj do paragonu; za każdym razem, gdy chcesz zapobiec zduplikowanym wysłaniom, gdy użytkownicy odświeżają stronę.
Jak klienci powinni reagować na ten status: Wykonaj nowe żądanie GET do nowego adresu URL. To zapobiega przypadkowemu ponownemu wysłaniu, jeśli użytkownicy odświeżą stronę, ponieważ odświeżenie po prostu przeładuje ostatnią stronę, a nie ponownie wyśle formularz.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 303, gdy chcesz zachować oryginalną metodę (użyj 307), używanie go do stałych przekierowań (użyj 301), lub zapominanie, że przekierowanie zawsze użyje GET, niezależnie od oryginalnej metody.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 304?
HTTP: 304 Not Modified
Kiedy i dlaczego serwery go zwracają: Zasób nie zmienił się od ostatniego żądania, więc użyj swojej zapisanej kopii. To jak sprawdzenie, czy dokument został zaktualizowany i usłyszenie “nie, wciąż ten sam.”
Praktyczne przypadki użycia: Buforowanie przeglądarki, gdzie sprawdza, czy pliki obrazów/CSS/JavaScript się zmieniły, odpowiedzi API, które rzadko się zmieniają, lub każda sytuacja, w której chcesz zaoszczędzić przepustowość, nie wysyłając ponownie niezmiennych danych.
Jak klienci powinni reagować na ten status: Użyj zapisanej wersji, którą już masz. Z tą odpowiedzią nie przychodzą żadne nowe dane - tylko potwierdza, że Twoja zapisana kopia jest nadal dobra.
Niewłaściwe użycie lub nieprawidłowe implementacje: Wysyłanie danych z 304 (musi być pusta), mówienie “nie zmienione”, gdy faktycznie zostało zmienione, lub nieprawidłowa obsługa specjalnych nagłówków, które sprawiają, że to działa.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 305?
HTTP: 305 Use Proxy
Kiedy i dlaczego serwery go zwracają: Ten kod statusu jest przestarzały i nigdy nie powinien być używany. Miał problemy z bezpieczeństwem i został porzucony przez społeczność internetową.
Praktyczne przypadki użycia: Żadne - ten kod statusu jest wycofany i nie powinien być używany w żadnej nowoczesnej aplikacji.
Jak klienci powinni reagować na ten status: Nowoczesni klienci powinni ignorować ten kod statusu ze względów bezpieczeństwa. To artefakt historyczny.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie tego kodu statusu w ogóle jest błędem. Jest przestarzały z dobrych powodów bezpieczeństwa i nigdy nie powinien pojawiać się w nowoczesnych aplikacjach.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 307?
HTTP: 307 Temporary Redirect
Kiedy i dlaczego serwery go zwracają: Tymczasowo przekieruj do innego adresu URL, ale w przeciwieństwie do 302, klient musi użyć tej samej metody. Jeśli oryginalne żądanie było POST, przekierowanie też musi być POST.
Praktyczne przypadki użycia: Endpointy API w trakcie konserwacji, które muszą zachować metodę, równoważenie obciążenia, które utrzymuje integralność żądania, lub każde tymczasowe przekierowanie, gdzie zmiana z POST na GET zepsułaby rzeczy.
Jak klienci powinni reagować na ten status: Przekieruj do nowego adresu URL, używając dokładnie tej samej metody i treści co oryginalne żądanie. To jest bardziej rygorystyczne niż przekierowania 302.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 307 do stałych przeniesień (użyj 308), używanie go, gdy zachowanie metody nie ma znaczenia (302 jest prostsze), lub nieświadomość, że klienci muszą ponownie wysłać treść żądania.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 308?
HTTP: 308 Permanent Redirect
Kiedy i dlaczego serwery go zwracają: Jak 301, ale gwarantuje, że metoda się nie zmieni. Jeśli wysłałeś POST do starego adresu URL, musisz też wysłać POST do nowego adresu URL.
Praktyczne przypadki użycia: Trwałe przenoszenie endpointów API, które akceptują POST/PUT/DELETE, restrukturyzacja usług RESTful przy zachowaniu integralności metody, lub każde trwałe przeniesienie, gdzie metoda HTTP musi być zachowana.
Jak klienci powinni reagować na ten status: Trwale zaktualizuj odniesienia, aby używać nowego adresu URL, i zawsze używaj tej samej metody HTTP co oryginalne żądanie podczas podążania za przekierowaniem.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 308 do tymczasowych przeniesień (użyj 307), używanie go, gdy zachowanie metody nie ma znaczenia (301 jest szerzej obsługiwany), lub zapominanie, że to jest nowszy kod statusu, którego starsze klienty mogą nie rozumieć.
Dokumentacja Mozilla.org dla dodatkowej referencji
Błędy klienta 4xx
Te kody wskazują, że klient wydaje się popełnił błąd.
Czym jest kod statusu 400?
HTTP: 400 Bad Request
Kiedy i dlaczego serwery go zwracają: Twoje żądanie jest źle sformułowane lub nieprawidłowe w jakiś sposób. To jak wypełnianie formularza z Twoim e-mailem w polu numeru telefonu - serwer nie może tego przetworzyć, ponieważ nie ma to sensu.
Praktyczne przypadki użycia: Nieprawidłowy JSON w treści żądania, brakujące wymagane parametry, niewłaściwe typy danych (wysyłanie tekstu, gdy oczekiwana jest liczba), źle sformułowane adresy URL lub każdy błąd składni w żądaniu.
Jak klienci powinni reagować na ten status: Nie próbuj ponownie tego samego żądania - znowu się nie powiedzie. Najpierw napraw problem. Sprawdź treść odpowiedzi, aby uzyskać szczegóły o tym, co jest nie tak i popraw to przed ponowną próbą.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 400 do problemów z uwierzytelnianiem (użyj 401), zwracanie 400 dla błędów serwera (użyj 5xx), dawanie niejasnych komunikatów o błędach, które nie pomagają naprawić problemu, lub używanie 400 jako uniwersalnego rozwiązania dla każdego błędu.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 401?
HTTP: 401 Unauthorized
Kiedy i dlaczego serwery go zwracają: Musisz się zalogować lub podać poświadczenia, aby uzyskać dostęp do tego zasobu. To jak próba wejścia do strefy tylko dla członków bez pokazania karty członkowskiej.
Praktyczne przypadki użycia: Dostęp do chronionych endpointów API bez tokena, wygasłe sesje logowania, brakujące klucze API lub każde żądanie do zasobu, które wymaga udowodnienia, kim jesteś.
Jak klienci powinni reagować na ten status: Poproś użytkownika o zalogowanie się, przekieruj na stronę logowania lub uzyskaj ważne poświadczenia przed ponowną próbą. Dla API uzyskaj świeży token uwierzytelniający.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 401, gdy poświadczenia są ważne, ale niewystarczające (użyj 403), zapominanie o dołączeniu informacji o tym, jak się uwierzytelnić, lub mylenie uwierzytelniania (kim jesteś) z autoryzacją (co możesz robić).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 403?
HTTP: 403 Forbidden
Kiedy i dlaczego serwery go zwracają: Serwer rozumie, kim jesteś, ale nie pozwoli Ci uzyskać dostępu do tego zasobu. To jak pokazanie dowodu osobistego, aby wejść do strefy VIP, ale usłyszenie, że nie jesteś na liście.
Praktyczne przypadki użycia: Próba dostępu do funkcji administratora jako zwykły użytkownik, próba wyświetlenia prywatnych danych innego użytkownika, ograniczenia geograficzne (treść niedostępna w Twoim kraju) lub blokowanie adresu IP.
Jak klienci powinni reagować na ten status: Nie zawracaj sobie głowy ponowną próbą z tymi samymi poświadczeniami - nie będą działać. Pokaż komunikat “odmowa dostępu” i ewentualnie wyjaśnij, jak uzyskać właściwy dostęp, jeśli to możliwe.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 403, gdy użytkownik nie jest zalogowany (użyj 401), używanie 403 dla zasobów, które nie istnieją, aby ukryć ich istnienie (dyskusyjne - możesz użyć 404), lub brak jasności co do tego, dlaczego dostęp jest zabroniony.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 404?
HTTP: 404 Not Found
Kiedy i dlaczego serwery go zwracają: Serwer nie może znaleźć niczego pod adresem URL, o który poprosiłeś. To jak udanie się pod adres ulicy, gdzie jest tylko pusty plac - albo podałeś zły adres, albo cokolwiek tam było, zniknęło.
Praktyczne przypadki użycia: Wpisywanie adresu URL nieprawidłowo (jak gooogle.com zamiast google.com), klikanie starych zakładek do stron, które zostały usunięte, podążanie za zepsutymi linkami z innych witryn, robienie literówek w endpointach API lub próba dostępu do plików, które zostały przeniesione lub przemianowane.
Jak klienci powinni reagować na ten status: Pokaż stronę błędu, która pomaga użytkownikom dowiedzieć się, co dalej robić. Dobre strony 404 zawierają pole wyszukiwania, linki do popularnych stron, sposób zgłoszenia zepsutego linku, a nawet zabawną wiadomość, aby uczynić błąd mniej frustrującym.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 404, gdy dostęp jest zabroniony (użyj 403 dla “nie możesz tego zobaczyć”), zwracanie 404 dla rzeczy, które zostały celowo usunięte na zawsze (rozważ 410 “Gone”), pokazywanie ogólnych bezużytecznych stron błędów, lub używanie 404 do ukrycia, że coś istnieje przed nieautoryzowanymi użytkownikami (choć jest to dyskusyjne dla bezpieczeństwa).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 405?
HTTP: 405 Method Not Allowed
Kiedy i dlaczego serwery go zwracają: Zasób istnieje, ale nie obsługuje metody HTTP, której użyłeś. To jak próba pchania drzwi, które otwierają się tylko przez pociągnięcie - drzwi istnieją, po prostu musisz ich użyć prawidłowo.
Praktyczne przypadki użycia: Próba DELETE zasobu, który jest tylko do odczytu, wysyłanie POST do endpointu, który akceptuje tylko GET, próba PUT na zasobach, które nie mogą być aktualizowane, lub używanie niestandardowych metod, których serwer nie obsługuje.
Jak klienci powinni reagować na ten status: Sprawdź nagłówek Allow, aby zobaczyć, które metody są obsługiwane, następnie spróbuj ponownie z odpowiednią metodą. Nie próbuj ciągle tej samej metody - nie jest obsługiwana.
Niewłaściwe użycie lub nieprawidłowe implementacje: Niedołączanie wymaganego nagłówka Allow wymieniającego obsługiwane metody, używanie 405, gdy zasób nie istnieje (użyj 404), lub zwracanie 405 dla metod, które serwer powinien obsługiwać, ale jeszcze nie zaimplementował (rozważ 501).
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 406?
HTTP: 406 Not Acceptable
Kiedy i dlaczego serwery go zwracają: Serwer nie może dostarczyć zasobu w formacie, który zaakceptujesz. To jak proszenie o menu po francusku w restauracji, która ma tylko wersje angielskie i hiszpańskie.
Praktyczne przypadki użycia: Żądanie JSON z endpointu, który dostarcza tylko XML, proszenie o format obrazu, którego serwer nie obsługuje, niepowodzenia negocjacji języka lub każde niedopasowanie negocjacji treści.
Jak klienci powinni reagować na ten status: Zmodyfikuj swoje nagłówki Accept, aby zażądać formatu, który serwer może dostarczyć, lub obsłuż dostępne formaty. Odpowiedź może wymieniać, jakie formaty są dostępne.
Niewłaściwe użycie lub nieprawidłowe implementacje: Bycie zbyt rygorystycznym w kwestii formatów, gdy możesz dostarczyć rozsądną wartość domyślną, używanie 406 dla błędów nie związanych z negocjacją treści, lub nie jasne wskazywanie, jakie formaty są dostępne.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 407?
HTTP: 407 Proxy Authentication Required
Kiedy i dlaczego serwery go zwracają: Serwer proxy między Tobą a miejscem docelowym wymaga uwierzytelnienia. To jak konieczność pokazania dowodu osobistego ochroniarzowi, zanim w ogóle dostaniesz się do budynku, do którego chcesz wejść.
Praktyczne przypadki użycia: Korporacyjne serwery proxy wymagające logowania pracownika, bramy sieciowe wymagające uwierzytelnienia, płatne usługi proxy wymagające poświadczeń lub każda konfiguracja uwierzytelnionego proxy.
Jak klienci powinni reagować na ten status: Uwierzytelnij się z serwerem proxy (nie z serwerem docelowym) używając metody określonej w nagłówku Proxy-Authenticate, następnie ponów oryginalne żądanie.
Niewłaściwe użycie lub nieprawidłowe implementacje: Mylenie tego ze zwykłym uwierzytelnieniem 401, niedołączanie nagłówka Proxy-Authenticate, lub używanie 407, gdy to serwer docelowy (a nie proxy) wymaga uwierzytelnienia.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 408?
HTTP: 408 Request Timeout
Kiedy i dlaczego serwery go zwracają: Serwer czekał na wysłanie pełnego żądania, ale zajęło Ci to zbyt długo. To jak rozpoczęcie zamawiania w restauracji, ale pauza tak długa, że kelner odchodzi.
Praktyczne przypadki użycia: Wolne połączenia sieciowe powodujące opóźnienia, przesyłanie dużych plików przez słabe połączenia, aplikacje klienckie, które zawieszają się podczas transmisji żądania, lub przerwy w sieci podczas wysyłania danych.
Jak klienci powinni reagować na ten status: Możesz spróbować ponownie żądanie, najlepiej z lepszym połączeniem lub mniejszym ładunkiem. Rozważ podział dużych żądań na mniejsze części lub poprawę warunków sieciowych.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 408, gdy serwer jest wolny (to 504), ustawianie nierozsądnie krótkich limitów czasu, lub używanie 408 dla limitów czasu na poziomie aplikacji, a nie na poziomie sieci.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 409?
HTTP: 409 Conflict
Kiedy i dlaczego serwery go zwracają: Twoje żądanie jest w konflikcie z bieżącym stanem zasobu. To jak próba utworzenia nazwy użytkownika, która już jest zajęta - operacja ma sens, ale nie może być wykonana w tej chwili.
Praktyczne przypadki użycia: Próba utworzenia zduplikowanego rekordu, edytowanie dokumentu, który ktoś inny obecnie edytuje, konflikty wersji w systemach współpracy, lub naruszanie reguł biznesowych (jak podwójne rezerwowanie zasobu).
Jak klienci powinni reagować na ten status: Rozwiąż konflikt, wybierając inną wartość, łącząc zmiany lub czekając na rozwiązanie konfliktu. Odpowiedź powinna wyjaśnić, czym jest konflikt i jak go rozwiązać.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 409 dla błędów walidacji (rozważ 422), nie wyjaśnianie, jak rozwiązać konflikt, używanie 409 dla problemów z uprawnieniami (użyj 403), lub zgłaszanie konfliktów, które faktycznie nie są rozwiązywalne przez klienta.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 410?
HTTP: 410 Gone
Kiedy i dlaczego serwery go zwracają: Zasób kiedyś tu istniał, ale został celowo usunięty i nie wróci. To jak odwiedzenie zburzonego budynku - nie jest tylko tymczasowo zamknięty, jest trwale zniknięty.
Praktyczne przypadki użycia: Artykuły lub posty, które zostały usunięte za naruszenie zasad, produkty, które zostały trwale wycofane, stare wersje API, które zostały wycofane, lub każda treść celowo i trwale usunięta.
Jak klienci powinni reagować na ten status: Usuń zakładki, zaktualizuj linki i poinformuj użytkowników, że treść jest trwale zniknięta. Wyszukiwarki powinny usunąć te adresy URL ze swojego indeksu. Nie sprawdzaj ciągle - nie wróci.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 410 do tymczasowych usunięć (użyj 503), używanie 410, gdy możesz przywrócić treść, używanie 410 dla rzeczy, które nigdy nie istniały (użyj 404), lub niepewność, czy usunięcie jest trwałe.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 418?
HTTP: 418 I’m a teapot
Kiedy i dlaczego serwery go zwracają: To żartobliwy kod statusu z prima aprilis RFC o kontrolowaniu dzbanków do kawy. Oznacza “Jestem czajniczkiem i poprosiłeś mnie o zaparzenie kawy, czego nie mogę zrobić.”
Praktyczne przypadki użycia: Wielkanocne jajka w aplikacjach, demonstrowanie rozszerzalności HTTP w kursach programowania, dodawanie humoru do środowisk deweloperskich/testowych lub jako zabawna odpowiedź w odpowiednich kontekstach.
Jak klienci powinni reagować na ten status: Rozpoznaj to jako humorystyczną odpowiedź i obsłuż odpowiednio - może wyświetlić zabawny komunikat o błędzie lub obrazy związane z herbatą. Nie oczekuj tego w poważnych środowiskach produkcyjnych.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 418 do rzeczywistych błędów w systemach produkcyjnych, nadużywanie go do punktu irytacji, lub zwracanie go użytkownikom, którzy nie zrozumieją żartu.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 422?
HTTP: 422 Unprocessable Entity
Kiedy i dlaczego serwery go zwracają: Format Twojego żądania jest poprawny, ale treść nie ma sensu. To jak wypełnianie formularza poprawnie, ale wprowadzanie niemożliwych danych - jak wiek 300 lat lub urodzenie się w przyszłości.
Praktyczne przypadki użycia: Niepowodzenia walidacji formularza (e-mail bez znaku @), naruszenia reguł biznesowych (data zakończenia przed datą rozpoczęcia), błędy semantyczne w żądaniach API lub jakiekolwiek błędy logiczne w poprawnie sformatowanych danych.
Jak klienci powinni reagować na ten status: Przeczytaj szczegóły błędu, aby zrozumieć, która walidacja się nie powiodła, popraw dane, aby spełniały wymagania i prześlij ponownie. Struktura była w porządku; treść wymaga dostosowania.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 422 dla błędów składni (użyj 400), nieprzewidywanie szczegółów błędów walidacji, używanie 422 dla problemów z uwierzytelnianiem/autoryzacją, lub bycie niespójnym co do tego, co wyzwala 422 vs 400.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 429?
HTTP: 429 Too Many Requests
Kiedy i dlaczego serwery go zwracają: Wysyłasz zbyt wiele żądań zbyt szybko. To jak dzwonienie do kogoś wielokrotnie - w końcu przestanie odbierać i powie Ci, żebyś zwolnił.
Praktyczne przypadki użycia: Ograniczanie liczby żądań API (np. 100 żądań na godzinę), zapobieganie nadużyciom lub atakom DDoS, ochrona serwerów przed przeciążeniem, lub egzekwowanie zasad uczciwego użytkowania.
Jak klienci powinni reagować na ten status: Przestań wysyłać żądania i poczekaj. Sprawdź nagłówek Retry-After, aby zobaczyć, kiedy możesz spróbować ponownie. Wdróż wykładnicze wycofywanie - czekaj dłużej między każdą próbą ponowienia.
Niewłaściwe użycie lub nieprawidłowe implementacje: Niedołączanie nagłówka Retry-After do kierowania klientami, ustawianie limitów zbyt niskich dla normalnego użytkowania, używanie 429 dla innych typów przeciążenia (rozważ 503), lub brak jasnej dokumentacji limitów liczby żądań.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 451?
HTTP: 451 Unavailable For Legal Reasons
Kiedy i dlaczego serwery go zwracają: Treść jest zablokowana ze względów prawnych. Nazwany na cześć “Fahrenheit 451” Raya Bradbury’ego o cenzurze, ten status wskazuje blokowanie rządowe lub prawne.
Praktyczne przypadki użycia: Treść zablokowana przez nakaz sądowy, powiadomienia o usunięciu DMCA, ograniczenia geograficzne ze względu na lokalne przepisy, wymagania cenzury rządowej lub jakiekolwiek prawnie nakazane blokowanie treści.
Jak klienci powinni reagować na ten status: Poinformuj użytkowników, że treść jest prawnie ograniczona. Odpowiedź może zawierać szczegóły o tym, kto zażądał blokady (jeśli prawnie dozwolone jest udostępnianie tych informacji).
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 451 dla blokad nieprawnych (użyj odpowiedniego kodu 4xx), brak przejrzystości co do blokad prawnych, gdy to możliwe, lub używanie 451 dla dobrowolnych zasad dotyczących treści, a nie wymagań prawnych.
Dokumentacja Mozilla.org dla dodatkowej referencji
Błędy serwera 5xx
Te kody wskazują, że serwer nie zdołał zrealizować prawidłowego żądania.
Czym jest kod statusu 500?
HTTP: 500 Internal Server Error
Kiedy i dlaczego serwery go zwracają: Coś poszło nie tak po stronie serwera i nie wie, jak sobie z tym poradzić. To jak kasa fiskalna zawieszająca się w sklepie - problem nie jest z Twoją metodą płatności, ich system po prostu się zepsuł.
Praktyczne przypadki użycia: Gdy połączenie z bazą danych się nie powiedzie, gdy jest błąd w kodzie serwera, gdy serwerowi kończy się pamięć, lub każda nieoczekiwana awaria, której programiści nie przewidzieli.
Jak klienci powinni reagować na ten status: Powiedz użytkownikom, że coś poszło nie tak i zasugeruj, aby spróbowali ponownie później. Możesz automatycznie spróbować ponownie po opóźnieniu, ponieważ te błędy są często tymczasowe.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 500 dla błędów użytkownika (użyj kodów 4xx dla tych), pokazywanie szczegółowych komunikatów o błędach użytkownikom (ryzyko bezpieczeństwa!), nielogowanie wystarczająco szczegółów, aby naprawić problem, lub używanie 500 jako leniwego uniwersalnego rozwiązania dla każdego błędu.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 501?
HTTP: 501 Not Implemented
Kiedy i dlaczego serwery go zwracają: Serwer nie obsługuje funkcjonalności, o którą prosisz. To jak proszenie podstawowego kalkulatora o rysowanie wykresów funkcji - rozumie, czego chcesz, ale nie ma tej funkcji.
Praktyczne przypadki użycia: Używanie metod HTTP, których serwer nie rozpoznaje, żądanie funkcji, które są planowane, ale jeszcze nie zbudowane, starsze serwery, które nie obsługują nowoczesnej funkcjonalności, lub niestandardowe metody, które nie są zaimplementowane.
Jak klienci powinni reagować na ten status: Nie próbuj ponownie tego żądania - serwer nie może go obsłużyć. Użyj innego podejścia lub sprawdź, czy istnieje alternatywny sposób osiągnięcia tego, czego potrzebujesz.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 501 dla tymczasowo wyłączonych funkcji (użyj 503), używanie 501 dla metod, które rozpoznajesz, ale nie zezwalasz (użyj 405), lub używanie 501 jako wymówki dla brakujących funkcji, które powinny być zaimplementowane.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 502?
HTTP: 502 Bad Gateway
Kiedy i dlaczego serwery go zwracają: Serwer działający jako brama lub proxy otrzymał nieprawidłową odpowiedź od serwera upstream. To jak proszenie kogoś o przekazanie wiadomości, ale wraca mówiąc “osoba, którą zapytałem, dała mi bełkot.”
Praktyczne przypadki użycia: Load balancer nie może dotrzeć do serwerów backend, brama API otrzymująca błędy z mikrousług, reverse proxy otrzymujące źle sformułowane odpowiedzi lub CDN niemożliwy do pobrania z serwera pochodzenia.
Jak klienci powinni reagować na ten status: To zwykle tymczasowe, więc spróbuj ponownie po krótkim opóźnieniu. Problem jest między serwerami, nie z Twoim żądaniem, więc ponowienie próby może zadziałać, gdy naprawią swoje problemy komunikacyjne.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 502 dla błędów samego serwera pochodzenia (użyj 500), nie rozróżnianie między scenariuszami “nie można dotrzeć” i “nieprawidłowa odpowiedź”, lub używanie 502, gdy sama brama ma problemy.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 503?
HTTP: 503 Service Unavailable
Kiedy i dlaczego serwery go zwracają: Serwer jest tymczasowo niezdolny do obsługi żądań. To jak sklep wywieszający znak “zamknięte na konserwację” - wrócą, ale nie teraz.
Praktyczne przypadki użycia: Zaplanowane okna konserwacyjne, sytuacje przeciążenia serwera, tymczasowe awarie dla aktualizacji, ograniczanie liczby żądań na poziomie serwera, lub każda tymczasowa niezdolność do obsługi żądań.
Jak klienci powinni reagować na ten status: Poczekaj i spróbuj ponownie później. Sprawdź nagłówek Retry-After dla wskazówek, kiedy wrócić. Wdróż wykładnicze wycofywanie dla ponownych prób, aby uniknąć przytłoczenia serwera, gdy wróci.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 503 dla stałych problemów (użyj odpowiedniego błędu), niedołączanie Retry-After, gdy wiesz, jak długo to potrwa, używanie 503 dla problemów specyficznych dla klienta, a nie problemów całego serwera.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 504?
HTTP: 504 Gateway Timeout
Kiedy i dlaczego serwery go zwracają: Serwer działający jako brama lub proxy nie otrzymał terminowej odpowiedzi od serwera upstream. To jak proszenie kogoś o przekazanie wiadomości, ale wraca mówiąc “czekałem i czekałem, ale nigdy nie odpowiedzieli.”
Praktyczne przypadki użycia: Zapytania do bazy danych trwające zbyt długo, przeciążone usługi backend, problemy sieciowe między serwerami, mikrousługi nie odpowiadające wystarczająco szybko, lub każdy limit czasu w komunikacji serwer-serwer.
Jak klienci powinni reagować na ten status: Możesz spróbować ponownie, ale pamiętaj, że operacja może być kosztowna lub wolna. Rozważ, czy żądanie jest na tyle krytyczne, aby spróbować ponownie, i wdróż rozsądne limity ponownych prób.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 504, gdy klienci są wolni (użyj 408), ustawianie limitów czasu zbyt krótkich dla rozsądnych operacji, nie rozróżnianie między różnymi scenariuszami limitów czasu, lub używanie 504 dla limitów czasu samego serwera pochodzenia.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 505?
HTTP: 505 HTTP Version Not Supported
Kiedy i dlaczego serwery go zwracają: Serwer nie obsługuje wersji HTTP użytej w żądaniu. To jak próba odtworzenia dysku Blu-ray w odtwarzaczu DVD - odtwarzacz rozumie, czego chcesz, ale nie może obsłużyć tego formatu.
Praktyczne przypadki użycia: Stare serwery, które obsługują tylko HTTP/1.0 otrzymujące żądania HTTP/2, serwery jeszcze nieuaktualnione do obsługi nowszych wersji HTTP, lub niestandardowe/eksperymentalne wersje HTTP, których serwer nie rozpoznaje.
Jak klienci powinni reagować na ten status: Ponów żądanie używając innej wersji HTTP, zazwyczaj wracając do HTTP/1.1, który jest powszechnie obsługiwany. Sprawdź, które wersje serwer obsługuje.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 505 dla nieobsługiwanych funkcji w obrębie wersji (użyj 501), niepróbowanie obsługiwać negocjacji wersji z wdziękiem, lub odrzucanie standardowych wersji HTTP, które powinny być obsługiwane.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 507?
HTTP: 507 Insufficient Storage
Kiedy i dlaczego serwery go zwracają: Serwer nie ma wystarczającej przestrzeni dyskowej, aby ukończyć żądanie. To jak próba zapisania pliku, gdy dysk twardy jest pełny.
Praktyczne przypadki użycia: Niepowodzenia przesyłania plików z powodu pełnego dysku, operacje bazy danych osiągające limity przestrzeni dyskowej, operacje WebDAV przekraczające przydzieloną przestrzeń, lub każda operacja, która wymaga więcej przestrzeni niż jest dostępna.
Jak klienci powinni reagować na ten status: Poinformuj użytkowników o limitach przestrzeni dyskowej. Może być konieczne usunięcie starej zawartości, żądanie więcej przestrzeni dyskowej lub zmniejszenie rozmiaru tego, co próbujesz przechować.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 507 dla tymczasowych problemów z przestrzenią dyskową, które się rozwiążą (rozważ 503), brak właściwego monitorowania przestrzeni dyskowej, używanie 507 dla problemów z limitami niezwiązanymi z fizyczną przestrzenią dyskową, lub nieprzewidywanie informacji o limitach przestrzeni dyskowej.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 508?
HTTP: 508 Loop Detected
Kiedy i dlaczego serwery go zwracają: Serwer wykrył nieskończoną pętlę podczas przetwarzania żądania. To jak podążanie za instrukcjami, które mówią “zobacz krok 1” na końcu - szedłbyś w kółko na zawsze.
Praktyczne przypadki użycia: Operacje WebDAV z odniesieniami cyklicznymi, łańcuchy przekierowań, które wracają same na siebie, dowiązania symboliczne tworzące cykle, lub każda operacja serwera, która wykrywa, że powtarza się w nieskończoność.
Jak klienci powinni reagować na ten status: Nie próbuj ponownie tego samego żądania - trafi na tę samą pętlę. Sprawdź cykliczne odniesienia w swojej strukturze danych i napraw je przed ponowną próbą.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 508 dla błędów niepętlowych, brak implementacji właściwego wykrywania pętli, używanie 508 dla pętli przekierowań po stronie klienta (te pokazują się inaczej), lub wykrywanie fałszywych pozytywów jako pętli.
Dokumentacja Mozilla.org dla dodatkowej referencji
Czym jest kod statusu 511?
HTTP: 511 Network Authentication Required
Kiedy i dlaczego serwery go zwracają: Musisz uwierzytelnić się z samą siecią, zanim będziesz mógł uzyskać dostęp do internetu. To jak konieczność zalogowania się do WiFi w hotelu, zanim będziesz mógł przeglądać jakiekolwiek strony internetowe.
Praktyczne przypadki użycia: Strony logowania WiFi w hotelach lub na lotniskach, portale dostępu do sieci korporacyjnej, publiczne WiFi wymagające akceptacji warunków korzystania z usługi, lub każda sytuacja portalu przechwytującego.
Jak klienci powinni reagować na ten status: Przekieruj użytkowników na stronę logowania do sieci (zwykle podaną w odpowiedzi). Po uwierzytelnieniu się z siecią mogą ponowić swoje oryginalne żądanie.
Niewłaściwe użycie lub nieprawidłowe implementacje: Używanie 511 dla wymagań logowania do witryny (użyj 401), używanie 511 dla uwierzytelnienia proxy (użyj 407), lub implementowanie portali przechwytujących w sposób, który psuje bezpieczne połączenia.
Dokumentacja Mozilla.org dla dodatkowej referencji