Kompletny przewodnik i lista kodów stanu HTTP
Opublikowany: 2020-02-24Kody stanu HTTP są jak krótkie notatki z serwera, które są przyklejane do strony internetowej. W rzeczywistości nie są one częścią zawartości witryny. Zamiast tego są to wiadomości z serwera informujące o tym, jak poszło, gdy otrzymał żądanie wyświetlenia określonej strony.
Tego rodzaju wiadomości są zwracane za każdym razem, gdy przeglądarka wchodzi w interakcję z serwerem, nawet jeśli ich nie widzisz. Jeśli jesteś właścicielem lub programistą witryny, zrozumienie kodów stanu HTTP ma kluczowe znaczenie. Kiedy się pojawią, kody stanu HTTP są nieocenionym narzędziem do diagnozowania i naprawiania błędów konfiguracji witryny.
W tym artykule przedstawiono kilka stanów serwera i kody błędów oraz wyjaśniono, co ujawniają na temat tego, co dzieje się na serwerze za kulisami.
Zanurzmy się!
Wolisz obejrzeć wersję wideo?
Co to są kody stanu HTTP?
Za każdym razem, gdy klikniesz link lub wpiszesz adres URL i naciśniesz Enter , przeglądarka wysyła do serwera żądanie witryny, do której próbujesz uzyskać dostęp. Serwer odbiera i przetwarza żądanie, a następnie odsyła odpowiednie zasoby wraz z nagłówkiem HTTP.
Kody stanu HTTP są dostarczane do przeglądarki w nagłówku HTTP. Chociaż kody stanu są zwracane za każdym razem, gdy przeglądarka żąda strony internetowej lub zasobu, w większości przypadków ich nie widzisz.
Zwykle tylko wtedy, gdy coś pójdzie nie tak, możesz zobaczyć go w przeglądarce. W ten sposób serwer mówi: „Coś jest nie tak. Oto kod, który wyjaśnia, co poszło nie tak”.

Jeśli chcesz zobaczyć kody stanu, których Twoja przeglądarka zwykle nie pokazuje, istnieje wiele różnych narzędzi, które to ułatwiają. Rozszerzenia przeglądarki są dostępne dla platform przyjaznych programistom, takich jak Chrome i Firefox, i istnieje wiele internetowych narzędzi do pobierania nagłówków, takich jak Web Sniffer.
Aby zobaczyć kody stanu HTTP za pomocą jednego z tych narzędzi, poszukaj wiersza znajdującego się w górnej części raportu, który mówi „Status: HTTP/1.1”. Po nim nastąpi kod statusu zwrócony przez serwer.
Zrozumienie klas kodów stanu HTTP
Kody statusu HTTP są podzielone na 5 „klas”. Są to grupy odpowiedzi, które mają podobne lub powiązane znaczenia. Wiedza o tym, czym one są, może pomóc w szybkim określeniu ogólnej treści kodu statusu, zanim zaczniesz szukać jego konkretnego znaczenia.
Pięć klas obejmuje:
- 100s: kody informacyjne wskazujące, że żądanie zainicjowane przez przeglądarkę jest kontynuowane.
- 200s: kody sukcesu zwracane, gdy żądanie przeglądarki zostało odebrane, zrozumiane i przetworzone przez serwer.
- 300s: kody przekierowania zwracane, gdy nowy zasób został zastąpiony żądanym zasobem.
- 400s: kody błędów klienta wskazujące, że wystąpił problem z żądaniem.
- 500s: Kody błędów serwera wskazujące, że żądanie zostało zaakceptowane, ale błąd serwera uniemożliwił jego realizację.
W ramach każdej z tych klas istnieje wiele różnych kodów serwera, które serwer może zwrócić. Każdy indywidualny kod ma specyficzne i niepowtarzalne znaczenie, które omówimy na bardziej wyczerpującej liście poniżej.
Dlaczego kody stanu HTTP i błędy mają znaczenie dla optymalizacji pod kątem wyszukiwarek (SEO)
Boty wyszukiwarek widzą kody stanu HTTP podczas indeksowania Twojej witryny. W niektórych przypadkach komunikaty te mogą wpływać na to, czy i w jaki sposób Twoje strony są indeksowane, a także na to, jak wyszukiwarki postrzegają kondycję Twojej witryny.
Ogólnie rzecz biorąc, 100- i 200-poziomowe kody statusu HTTP nie będą miały większego wpływu na SEO. Sygnalizują, że w Twojej witrynie wszystko działa tak, jak powinno, i umożliwiają botom wyszukiwarek kontynuowanie podróży. Jednak nie poprawią też twoich rankingów.
W większości to kody wyższego poziomu mają znaczenie dla SEO. Odpowiedzi na poziomie 400 i 500 mogą uniemożliwić botom indeksowanie i indeksowanie Twoich stron. Zbyt wiele z tych błędów może również wskazywać, że Twoja witryna nie jest wysokiej jakości, co może obniżyć pozycję w rankingu.
Kody 300-poziomowe mają nieco bardziej skomplikowany związek z SEO. Najważniejszą rzeczą, którą musisz wiedzieć, aby zrozumieć ich wpływ, jest różnica między stałymi a tymczasowymi przekierowaniami, które omówimy bardziej szczegółowo w odpowiedniej sekcji poniżej.
Krótko mówiąc, stałe przekierowania dzielą kapitał linków z linków zwrotnych, ale tymczasowe nie. Innymi słowy, gdy używasz tymczasowych przekierowań dla stron, które zostały przeniesione, tracisz przewagę SEO wynikającą z całego budowania linków, które zrobiłeś.
Sprawdzanie kodów stanu HTTP w Google Search Console
Jednym ze sposobów monitorowania, jak Google postrzega kody stanu HTTP w Twojej witrynie, jest użycie Google Search Console. W raporcie Zasięg można wyświetlić 300-, 400- i 500-poziomowe kody stanu:

Ten obszar pulpitu nawigacyjnego zawiera cztery typy treści w Twojej witrynie:
- Strony, które zwracają błędy.
- Prawidłowe strony z ostrzeżeniami.
- Zasoby, które są ważne.
- Treść wykluczona z indeksu.
W zależności od typu kodu strony z kodami stanu HTTP o poziomie 300, 400 i 500 można znaleźć w sekcjach Wykluczone , Błąd lub Prawidłowe z ostrzeżeniami . Na przykład przekierowania 301 mogą być wymienione w sekcji Wykluczone jako strona z przekierowaniem :

400- i 500-poziomowe kody stanu prawdopodobnie pojawią się pod Error .
Innym sposobem przeglądania kodów stanu HTTP jest użycie narzędzia do sprawdzania adresów URL . Jeśli Google nie może zindeksować określonej strony z powodu błędu, zobaczysz to tutaj:

Więcej wskazówek dotyczących korzystania z Google Search Console znajdziesz w naszym obszernym przewodniku po platformie.
Kompletny przewodnik i lista kodów stanu HTTP
Chociaż istnieje ponad 40 różnych kodów stanu serwera, najprawdopodobniej regularnie napotkasz mniej niż tuzin. Poniżej omówiliśmy bardziej popularne, a także kilka mniej znanych kodów, na które możesz natknąć się.
Zaskoczył Cię kod stanu HTTP? Nasi eksperci od WordPressa czekają. Wypróbuj Kinsta za darmo.
100 kodów statusu
100-poziomowy kod stanu informuje, że z jakiegoś powodu żądanie wysłane do serwera jest nadal w toku. To niekoniecznie jest problem, to tylko dodatkowe informacje, aby poinformować Cię, co się dzieje.
- 100: „Kontynuuj”. Oznacza to, że dany serwer odebrał nagłówki żądań przeglądarki i jest teraz gotowy do wysłania również treści żądania. Dzięki temu proces żądania jest bardziej wydajny, ponieważ uniemożliwia przeglądarce wysyłanie żądania treści, nawet jeśli nagłówki zostały odrzucone.
- 101: „Przełączanie protokołów”. Twoja przeglądarka poprosiła serwer o zmianę protokołów, a serwer to zrobił.
- 103: „Wczesne wskazówki”. Zwraca to niektóre nagłówki odpowiedzi, zanim reszta odpowiedzi serwera będzie gotowa.
200 kodów statusu
Jest to najlepszy rodzaj kodu statusu HTTP do otrzymania. 200-poziomowa odpowiedź oznacza, że wszystko działa dokładnie tak, jak powinno.
- 200: „Wszystko w porządku”. Jest to kod, który jest dostarczany, gdy strona internetowa lub zasób działa dokładnie tak, jak oczekiwano.
- 201: „Utworzono”. Serwer spełnił żądanie przeglądarki iw rezultacie utworzył nowy zasób.
- 202: „Zaakceptowano”. Serwer zaakceptował żądanie Twojej przeglądarki, ale nadal je przetwarza. Żądanie ostatecznie może, ale nie musi skutkować kompletną odpowiedzią.
- 203: „Informacje nieautorytatywne”. Ten kod stanu może pojawić się, gdy używany jest serwer proxy. Oznacza to, że serwer proxy otrzymał kod stanu 200 „Wszystko jest OK” z serwera pochodzenia, ale zmodyfikował odpowiedź przed przekazaniem jej do przeglądarki.
- 204: „Brak treści”. Ten kod oznacza, że serwer pomyślnie przetworzył żądanie, ale nie zwróci żadnej treści.
- 205: „Zresetuj zawartość”. Podobnie jak kod 204, oznacza to, że serwer przetworzył żądanie, ale nie zwróci żadnej treści. Wymaga to jednak również zresetowania widoku dokumentu przez przeglądarkę.
- 206: „Zawartość częściowa”. Możesz zobaczyć ten kod stanu, jeśli Twój klient HTTP (znany również jako Twoja przeglądarka) używa „nagłówków zakresu”. Dzięki temu Twoja przeglądarka może wznowić wstrzymane pobieranie, a także podzielić pobieranie na wiele strumieni. Kod 206 jest wysyłany, gdy nagłówek zakresu powoduje, że serwer wysyła tylko część żądanego zasobu.
300 kodów statusu
Przekierowanie to proces używany do komunikowania, że zasób został przeniesiony do nowej lokalizacji. Istnieje kilka kodów stanu HTTP, które towarzyszą przekierowaniom, aby zapewnić odwiedzającym informacje o tym, gdzie można znaleźć szukaną treść.
- 300: „Wiele możliwości”. Czasami może istnieć wiele możliwych zasobów, za pomocą których serwer może odpowiedzieć, aby spełnić żądanie przeglądarki. Kod statusu 300 oznacza, że Twoja przeglądarka musi teraz wybrać między nimi. Może się to zdarzyć, gdy dostępnych jest wiele rozszerzeń typów plików lub jeśli na serwerze występuje ujednoznacznienie sensu słów.
- 301: „Żądany zasób został przeniesiony na stałe”. Ten kod jest dostarczany, gdy strona internetowa lub zasób został trwale zastąpiony innym zasobem. Służy do stałego przekierowywania adresów URL.
- 302: „Żądany zasób został przeniesiony, ale został znaleziony”. Ten kod służy do wskazania, że żądany zasób został znaleziony, ale nie w oczekiwanym miejscu. Służy do tymczasowego przekierowywania adresów URL.
- 303: „Zobacz inne”. Zrozumienie kodu stanu 303 wymaga znajomości różnicy między czterema podstawowymi metodami żądania HTTP. Zasadniczo kod 303 informuje przeglądarkę, że znalazła zasób żądany przez przeglądarkę przez POST, PUT lub DELETE. Aby jednak pobrać go za pomocą GET, musisz wykonać odpowiednie żądanie pod innym adresem URL niż ten, którego wcześniej używałeś.
- 304: „Żądany zasób nie został zmodyfikowany od czasu ostatniego dostępu do niego.” Ten kod informuje przeglądarkę, że zasoby przechowywane w pamięci podręcznej przeglądarki nie uległy zmianie. Służy do przyspieszenia dostarczania stron internetowych poprzez ponowne wykorzystanie wcześniej pobranych zasobów.
- 307: „Tymczasowe przekierowanie”. Ten kod stanu zastąpił 302 „Znaleziono” jako odpowiednią akcję, gdy zasób został tymczasowo przeniesiony pod inny adres URL. W przeciwieństwie do kodu stanu 302 nie pozwala na zmianę metody HTTP.
- 308: „Stałe przekierowanie”. Kod statusu 308 jest następcą kodu 301 „Przeniesiony na stałe”. Nie pozwala na zmianę metody HTTP i wskazuje, że żądany zasób jest teraz na stałe zlokalizowany pod nowym adresem URL.
400 kodów statusu
Na poziomie 400 kody statusu HTTP zaczynają być problematyczne. Są to kody błędów wskazujące, że wystąpiła usterka przeglądarki i/lub żądania.

- 400: „Zła prośba”. Serwer nie może zwrócić odpowiedzi z powodu błędu po stronie klienta. Zobacz nasz przewodnik, aby rozwiązać ten błąd.
- 401: „Nieautoryzowany” lub „Wymagana autoryzacja”. Jest to zwracane przez serwer, gdy zasób docelowy nie ma prawidłowych poświadczeń uwierzytelniających. Możesz to zobaczyć, jeśli ustawiłeś podstawowe uwierzytelnianie HTTP za pomocą htpasswd.

- 402: „Wymagana płatność”. Pierwotnie kod ten został stworzony do użytku jako część cyfrowego systemu kasowego. Jednak ten plan nigdy nie został zrealizowany. Zamiast tego jest używany przez różne platformy, aby wskazać, że żądanie nie może zostać spełnione, zwykle z powodu braku wymaganych środków. Typowe instancje obejmują:
- Osiągnięto dzienny limit żądań do interfejsu Google Developers API.
- Nie zapłaciłeś opłat Shopify, a Twój sklep został tymczasowo dezaktywowany.
- Twoja płatność za pośrednictwem Stripe nie powiodła się lub Stripe próbuje zapobiec nieuczciwej płatności.
- 403: „Dostęp do tego zasobu jest zabroniony”. Ten kod jest zwracany, gdy użytkownik próbuje uzyskać dostęp do czegoś, do czego nie ma uprawnień do wyświetlania. Na przykład próba uzyskania dostępu do treści chronionych hasłem bez logowania może spowodować błąd 403.
- 404: „Nie znaleziono żądanego zasobu”. To najczęstszy komunikat o błędzie ze wszystkich. Ten kod oznacza, że żądany zasób nie istnieje, a serwer nie wie, czy kiedykolwiek istniał.
- 405: „Metoda niedozwolona”. Jest generowany, gdy serwer hostujący (serwer pochodzenia) obsługuje odebraną metodę, ale zasób docelowy nie.
- 406: „Niedopuszczalna odpowiedź”. Żądany zasób może generować tylko treść, która nie jest akceptowalna zgodnie z nagłówkami akceptacji przesłanymi w żądaniu.
- 407: „Wymagane uwierzytelnianie proxy”. Serwer proxy jest w użyciu i wymaga uwierzytelnienia przeglądarki przed kontynuowaniem.
- 408: „Upłynął limit czasu oczekiwania serwera na resztę żądania z przeglądarki”. Ten kod jest generowany po przekroczeniu limitu czasu serwera podczas oczekiwania na pełne żądanie z przeglądarki. Innymi słowy, serwer nie otrzymał pełnego żądania wysłanego przez przeglądarkę. Jedną z możliwych przyczyn może być przeciążenie sieci powodujące utratę pakietów danych między przeglądarką a serwerem.
- 409: „Konflikt”. Kod stanu 409 oznacza, że serwer nie mógł przetworzyć żądania przeglądarki, ponieważ wystąpił konflikt z odpowiednim zasobem. Czasami dzieje się tak z powodu wielu jednoczesnych edycji.
- 410: „Żądany zasób zniknął i nie wróci”. Jest to podobne do kodu 404 „Nie znaleziono”, z wyjątkiem tego, że 410 wskazuje, że stan jest oczekiwany i trwały.
- 411: „Wymagana długość”. Oznacza to, że żądany zasób wymaga, aby klient określił określoną długość, a tego nie zrobił.
- 412: „Warunek wstępny nie powiódł się”. Twoja przeglądarka zawarła pewne warunki w nagłówkach żądań, a serwer nie spełniał tych specyfikacji.
- 413: „Za duży ładunek” lub „Zbyt duża jednostka żądania”. Twoje żądanie jest większe niż serwer chce lub jest w stanie przetworzyć.
- 414: „Zbyt długi identyfikator URI”. Jest to zwykle wynik żądania GET, które zostało zakodowane jako ciąg zapytania, który jest zbyt duży, aby serwer mógł go przetworzyć.
- 415: „Nieobsługiwany typ nośnika”. Żądanie zawiera typ nośnika, którego serwer lub zasób nie obsługuje.
- 416: „Zakres nie do zaspokojenia”. Twoje żądanie dotyczyło części zasobu, której serwer nie może zwrócić.
- 417: „Oczekiwanie zawiodło”. Serwer nie jest w stanie spełnić wymagań określonych w polu nagłówka oczekiwania żądania.
- 418: „Jestem czajnikiem”. Ten kod jest zwracany przez czajniki, które otrzymują prośby o zaparzenie kawy. To także żart primaaprilisowy z 1998 roku.

- 422: „Podmiot nieprzetwarzalny”. Żądanie klienta zawiera błędy semantyczne i serwer nie może go przetworzyć.
- 425: „Za wcześnie”. Ten kod jest wysyłany, gdy serwer nie chce przetworzyć żądania, ponieważ może zostać odtworzone.
- 426: „Wymagana aktualizacja”. Ze względu na zawartość pola nagłówka aktualizacji żądania, klient powinien przełączyć się na inny protokół.
- 428: „Wymagany warunek wstępny”. Serwer wymaga określenia warunków przed przetworzeniem żądania.
- 429: „Zbyt wiele próśb”. Jest to generowane przez serwer, gdy użytkownik wysłał zbyt wiele żądań w określonym czasie (ograniczenie szybkości). Czasami może się to zdarzyć, gdy boty lub skrypty próbują uzyskać dostęp do Twojej witryny. W takim przypadku możesz spróbować zmienić adres URL logowania do WordPressa. Możesz również zapoznać się z naszym przewodnikiem dotyczącym naprawiania błędu 429 „Zbyt wiele żądań”.

- 431: „Za duże pola nagłówka żądania”. Serwer nie może przetworzyć żądania, ponieważ pola nagłówka są za duże. Może to wskazywać na problem z jednym polem nagłówka lub wszystkimi z nich łącznie.
- 451: „Niedostępne z powodów prawnych”. Operator serwera otrzymał żądanie zablokowania dostępu do żądanego zasobu (lub zestawu zasobów zawierającego ten, o który prosiłeś). Ciekawostka: ten kod jest odniesieniem do powieści Raya Bradbury'ego Fahrenheit 451 .
- 499: „Zamknięte żądanie klienta”. Jest to zwracane przez NGINX, gdy klient zamyka żądanie, podczas gdy Nginx nadal je przetwarza.
Zaskoczył Cię kod stanu HTTP? Nasi eksperci od WordPressa czekają. Wypróbuj Kinsta za darmo.
500 kodów statusu
500-poziomowe kody stanu są również uważane za błędy. Wskazują jednak, że problem leży po stronie serwera. Może to utrudnić ich rozwiązanie.
- 500: „Wystąpił błąd na serwerze i żądanie nie mogło zostać zrealizowane.” Jest to kod ogólny, który oznacza po prostu „wewnętrzny błąd serwera”. Coś poszło nie tak na serwerze i żądany zasób nie został dostarczony. Ten kod jest zwykle generowany przez wtyczki innych firm, wadliwe PHP, a nawet zerwanie połączenia z bazą danych. Sprawdź nasze samouczki, jak naprawić błąd podczas nawiązywania połączenia z bazą danych i inne sposoby rozwiązania wewnętrznego błędu serwera 500.

- 501: „Nie zaimplementowano”. Ten błąd wskazuje, że serwer nie obsługuje funkcji wymaganych do realizacji żądania. Jest to prawie zawsze problem na samym serwerze sieciowym i zwykle musi zostać rozwiązany przez hosta. Zapoznaj się z naszymi zaleceniami, jak rozwiązać nie zaimplementowany błąd 501.
- 502: „Zła brama”. Ten kod błędu zwykle oznacza, że jeden serwer otrzymał nieprawidłową odpowiedź od innego, na przykład gdy używany jest serwer proxy. Innym razem zapytanie lub żądanie będzie trwało zbyt długo, więc zostanie anulowane lub zabite przez serwer, a połączenie z bazą danych zostanie zerwane. Aby uzyskać więcej informacji, zapoznaj się z naszym szczegółowym samouczkiem, jak naprawić błąd 502 Bad Gateway.
- 503: „Serwer jest w tej chwili niedostępny, aby obsłużyć to żądanie”. Żądanie nie może zostać zrealizowane w tym momencie. Ten kod może zostać zwrócony przez przeciążony serwer, który nie jest w stanie obsłużyć dodatkowych żądań. Mamy pełny przewodnik, jak naprawić błąd niedostępności usługi 503.
- 504: „Serwer działający jako brama przekroczył limit czasu oczekiwania na odpowiedź innego serwera”. Jest to kod zwracany, gdy dwa serwery biorą udział w przetwarzaniu żądania, a pierwszy serwer upłynął limit czasu oczekiwania na odpowiedź drugiego serwera. Możesz przeczytać więcej o tym, jak naprawić błędy 504 w naszym dedykowanym przewodniku.
- 505: „Wersja HTTP nie jest obsługiwana”. Serwer nie obsługuje wersji HTTP, której klient użył do wysłania żądania.
- 508 : Osiągnięto limit zasobów „Osiągnięto limit zasobów” ustawiony przez dostawcę usług hostingowych. Sprawdź nasz samouczek, jak rozwiązać błąd „Osiągnięto limit zasobów 508”.
- 511: „Wymagane uwierzytelnianie sieci”. Ten kod stanu jest wysyłany, gdy sieć, której próbujesz użyć, wymaga jakiejś formy uwierzytelnienia przed wysłaniem żądania do serwera. Na przykład może być konieczne zaakceptowanie Warunków korzystania z publicznego hotspotu Wi-Fi.
- 521: „Serwer sieciowy nie działa”. Błąd 521 to komunikat o błędzie związany z Cloudflare. Oznacza to, że Twoja przeglądarka internetowa mogła pomyślnie połączyć się z Cloudflare, ale Cloudflare nie była w stanie połączyć się z pierwotnym serwerem internetowym.
- 525 : „Uzgadnianie SSL nie powiodło się”. Błąd 525 oznacza, że uzgadnianie SSL między domeną używającą Cloudflare a pierwotnym serwerem WWW nie powiodło się. Jeśli masz problemy, istnieje pięć metod, dzięki którym możesz łatwo naprawić błąd 525.
Gdzie można dowiedzieć się więcej o kodach stanu HTTP
Oprócz kodów stanu HTTP, które omówiliśmy na tej liście, istnieje kilka bardziej niejasnych kodów, o których możesz chcieć się dowiedzieć. Istnieje kilka zasobów, z których możesz zapoznać się, aby zapoznać się z tymi rzadszymi kodami, w tym:
- Ta obszerna lista kodów stanu HTTP z Wikipedii.
- Definicje kodów statusu z Internet Engineering Task Force (IETF).
- RFC 7231.
Znajomość tych kodów stanu może pomóc w rozwiązaniu niektórych unikalnych problemów podczas prowadzenia własnej witryny internetowej, a nawet w przypadku napotkania ich w innych witrynach.
Streszczenie
Chociaż mogą wydawać się mylące lub onieśmielające na powierzchni, kody stanu HTTP są w rzeczywistości bardzo pouczające. Poznając niektóre z typowych, możesz szybciej rozwiązywać problemy w swojej witrynie.
W tym poście zdefiniowaliśmy ponad 40 kodów stanu HTTP, które możesz napotkać. Od łagodniejszych kodów 100- i 200-poziomowych po bardziej skomplikowane błędy 400- i 500-poziomowe, zrozumienie tych komunikatów ma kluczowe znaczenie dla utrzymania witryny i zapewnienia jej dostępności dla użytkowników.