Kody błędów HTTP – sprawdź, co oznacza error w Twojej przeglądarce
Poruszając się po Internecie, na pewno kiedyś zdarzyło Ci się natknąć na błąd odpowiedzi HTTP. Jednym z najpopularniejszych jest error 404 – strony nie znaleziono. Znajomość kodów pozwala zrozumieć, co poszło nie tak podczas ładowania witryny oraz znaleźć rozwiązanie tego problemu. Sprawdź, co oznaczają poszczególne kody HTTP.
Czym jest serwer HTTP?
Serwer HTTP to program lub urządzenie, które przetwarza zapytania od klientów wysyłane przez protokół HTTP (HyperText Transfer Protocol) i udziela na nie odpowiedzi, zazwyczaj dostarczając pliki, informacje lub inne zasoby. Wygląda to następująco:
- Użytkownik wysyła żądanie HTTP na określony adres URL (w uproszczeniu: wpisuje hasło w wyszukiwarkę, np. adres strony).
- Serwer interpretuje to pytanie, sprawdzając ścieżkę do zasobu (do miejsca, które próbuje wyszukać użytkownik).
- Serwer generuje odpowiedź na żądanie (wyświetla wynik) i kończy połączenie bądź je podtrzymuje (wynik cały czas się wyświetla).
Tym samym serwer HTTP stanowi fundament funkcjonowania Internetu, pozwalając na przeglądanie witryn, ściąganie plików oraz używanie aplikacji internetowych.
Czym są kody odpowiedzi HTTP?
Kody odpowiedzi HTTP to krótkie komunikaty serwera internetowego, które są umieszczane na początku strony. Nie stanowią one jednak części samej witryny, lecz są odpowiedzią serwera, która daje nam wgląd w to, co miało miejsce, gdy serwer otrzymał prośbę o wyświetlenie konkretnej strony.
Takie odpowiedzi nie dotyczą wyłącznie błędów, ponieważ są generowane za każdym razem, gdy przeglądarka nawiązuje interakcję z serwerem – nawet jeśli nie są widoczne.
Jeśli jesteś właścicielem strony lub programistą, zrozumienie numerów odpowiedzi HTTP jest niezwykle istotne, ponieważ kiedy już się pojawią, stanowią one cenne narzędzie do diagnozowania i rozwiązywania potencjalnych problemów konfiguracyjnych.
Dlaczego w przeglądarce wyskakują błędy protokołu HTTP?
Kiedy użytkownik wysyła pytanie do protokołu HTTP, zwykle nie widzi całego procesu „za kulisami”, który prowadzi go do wyniku wyszukiwania. Odpowiedzi HTTP to też tzw. kody powodzenia, które nie są udostępniane użytkownikowi (o powodzeniu informuje go przecież pojawienie się wyniku na ekranie).
Czasem jednak coś pójdzie nie tak – wtedy przed użytkownikiem pojawi się tzw. kod błędu serwera HTTP lub kod błędu aplikacji klienta.
Kod błędu to umowna nazwa danego błędu, który może wystąpić podczas korzystania z serwera HTTP. Za każdym numerem kryje się dokładne wyjaśnienie, co poszło nie tak. Dzięki temu użytkownik wie, dlaczego jego pytanie nie zostało zrealizowane przez witrynę.
Jakie klasy odpowiedzi HTTP wyróżniamy?
Jak zostało wspomniane wcześniej, błędy to nie jedyne odpowiedzi, jakie można uzyskać od serwera HTTP. Zostały one pogrupowane w klasy, dzięki którym po ich pierwszej cyfrze można zrozumieć, do jakiego rodzaju odpowiedzi się odnoszą.
Poniżej przedstawiamy wszystkie klasy odpowiedzi HTTP:
- 100: kody informacyjne – jak sama nazwa wskazuje, informują one użytkownika, że zainicjowane zadanie jest kontynuowane,
- 200: kody powodzenia – występują, gdy żądanie z przeglądarki zostało pomyślnie odebrane, zinterpretowane, a następnie przetworzone przez serwer,
- 300: kody przekierowania – pojawiają się, kiedy nowa treść zastępuje oczekiwany zasób,
- 400: kody błędów klienta – to one informują o problemie związanym z danym pytaniem,
- 500: kody błędów serwera – wskazują, że pytanie zostało przyjęte, ale jakiś błąd na serwerze uniemożliwił jego realizację.
Dzięki znajomości przynajmniej początkowych liczb w numerach poszczególnych kodów łatwiej jest zrozumieć, z jaką odpowiedzią mamy do czynienia.
Wszystkie kody błędów HTTP
Jak widać, nie wszystkie odpowiedzi serwera HTTP odnoszą się do błędów, ale errors stanowią ich ważną część. Warto jednak wiedzieć, co poszczególne z nich oznaczają, żeby wiedzieć, z jakim problemem się spotykamy, przeglądając strony w Internecie.

Kody 400 – kody błędu aplikacji klienta
400 – Bad request
Kod 400 wskazuje na błędne żądanie, które zostało odrzucone przez serwer (na przykład z powodu nieprawidłowej składni lub nieprawidłowego routingu).
401 – Unauthorized
Pojawienie się error 401 to jest informacja dla użytkownika, że treść docelowa nie dysponuje właściwym potwierdzeniem wierzytelności.
402 – Payment Required
Kod 402 jest zarezerwowany dla Google Developers API, który dzięki niemu oznajmia programistom, że przekroczyli dzienny limit pytań.
403 – Forbidden
Kod 403 wskazuje, że użytkownik nie ma odpowiednich uprawnień do uzyskania odpowiedzi na pytanie (na przykład gdy próbuje otworzyć zasób zabezpieczony hasłem, będąc niezalogowanym).

404 – Not found
Error 404 to najczęściej występujący błąd serwera HTTP. Oznacza on, iż zasób nie istnieje, a dodatkowo serwer nie znajduje informacji, czy kiedykolwiek był dostępny.
405 – Method not allowed
Kod 405 oznacza, iż znaleziony zasób istnieje, ale klient użył niedozwolonej metody HTTP. Odpowiedź zawiera również wykaz alternatywnych, dozwolonych metod.
406 – Not Acceptable
Niedopuszczalne – serwer nie może dostarczyć użytkownikowi odpowiedzi, którą mógłby obsłużyć na podstawie danych zawartych w pytaniu.
407 – Proxy Authentication Required
Serwer wymaga uwierzytelnienia do serwera pośredniczącego proxy. Ten kod oznacza w zasadzie to samo, co numer 401.
408 – Request timeout
Kod 408 wskazuje na to, że serwer nie otrzymał w ustalonym czasie odpowiedzi na pytanie przeglądarki internetowej (np. poprzez przeciążenie sieci).
409 – Conflict
Błąd 409 wskazuje na konflikt – zadanie nie może zostać zrealizowane z powodu sprzeczności z aktualnym stanem zasobu. Ta odpowiedź jest generowana jedynie w sytuacji, gdy serwer podejrzewa, że klient może zidentyfikować przyczyny błędu i ponownie wysłać poprawne pytanie. Odpowiedź serwera powinna zawierać informacje, które pomogą klientowi w rozwiązaniu problemu, chociaż nie jest to wymogiem.
410 – Gone
Kod 410 to kod bliski błędowi 404. W przeciwieństwie do niego jednak, choć zasób nie istnieje, serwer posiada o tym informacje.
411 – Length required
Wymagana długość – pokazując kod 411, serwer odmawia zrealizowania zadania ze względu na brak nagłówka Content-Length w zapytaniu; klient może spróbować jeszcze raz, dodając poprawny nagłówek długości
412 – Precondition Failed
Error 412 oznacza „Warunek wstępny nie może być spełniony” – czyli że serwer nie może spełnić przynajmniej jednego z warunków zawartych w pytaniu.

413 – Request Entity Too Large
Kod 413 oznacza, że całkowita długość zadania jest zbyt długa dla serwera.
414 – Request-URL Too Long
Ta sekwencja oznacza, że adres URL pytania jest zbyt długi – długość zażądanego URL jest większa niż maksymalna oczekiwana przez serwer.
415 – Unsupported Media Type
Ten kod oznajmia klientowi, że serwer odmawia przyjęcia pytania, ponieważ jego składnia jest niezrozumiała.
421 – Misdirected Request
Error 421 oznacza, że żądanie zostało skierowane do serwera, który nie powinien go otrzymać lub który nie jest w stanie na nie odpowiedzieć.
422 – Unprocessable entity
Error 422 informuje, że chociaż zadanie od użytkownika było poprawnie sformułowane, było niemożliwe do kontynuowania z powodu semantycznych błędów.
423 – Locked
Ta sekwencja oznacza, że nastąpiła próba uzyskania dostępu do zasobu, który jest aktualnie zablokowany.
424 – Failed Dependency
Brak powodzenia pytania, ponieważ jest ono zależne od innego żądania, które również nie powiodło się.
426 – Upgrade Required
Error 426 oznacza, że serwer odmawia wykonania zadania, używając aktualnego protokołu. Wymagany protokół dla klienta przekazany jest w nagłówku Upgrade.
428 – Precondition Required
Brak nagłówka wstępnego, który jest wymagany przez serwer do przetworzenia pytania.
429 – Too many requests
Ten kod to informacja dla użytkownika, że wysłał on zbyt wiele zapytań w określonym czasie. Serwer nie jest w stanie przetworzyć wszystkich razem.
499 – Client closed request
Error 499 oznacza zamknięcie zadania w trakcie przetwarzania go przez wskazany serwer HTTP.

Kody 500 – kody błędu serwera HTTP
501 – Not implemented
Error 501 informuje klienta, że serwer nie obsługuje funkcji wymaganej do spełnienia żądania.
502 – Bad gateway
Serwer uzyskał błędną odpowiedź od innego serwera (na przykład, gdy zapytanie trwa zbyt długo, co zmusza serwer do przerwania połączenia z bazą danych).
503 – Service unavailable
Problem z hostem uniemożliwia przetworzenie pytania klienta.
504 – Gateway timeout
Przetwarzane żądanie nie zostało wykonane, ponieważ pierwszy serwer przekroczył limit czasu oczekiwania na odpowiedź drugiego serwera.
505 – HTTP Version Not Supported
Error 505 oznacza nieobsługiwaną wersję HTTP – serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP.
507 – Insufficient Storage
Serwer nie jest w stanie zapisać danych związanych z wykonaniem zapytania.
508 – Loop Detected
Serwer wykrył nieskończoną pętlę w trakcie przetwarzania zapytania, więc nie może pokazać odpowiedzi.
509 – Bandwidth Limit Exceeded
Serwer jest tymczasowo niedostępny, ponieważ właściciel strony przekroczył limit transferu danych.
510 – Not Extended
Error 510 oznacza brak rozszerzenia HTTP koniecznego do obsługi danego zapytania.
511 – Network Authentication Required
Wymagane uwierzytelnienie przed otrzymaniem dostępu do sieci. W zamyśle wykorzystywane przez pośredników kontrolujących dostęp do sieci (np.: wymaganie potwierdzenia zasad użytkowania przed udostępnieniem połączenia).

Kody odpowiedzi od serwera – teraz już wiesz!
Nie musisz znać kodów na pamięć – większość z nich wyświetla się wraz z nazwą po angielsku, więc od razu zrozumiesz, co oznaczają. Na szczęście wiele z nich pojawia się bardzo rzadko, a z wieloma już zdążyłeś(-aś) się zapoznać!