W artykule o tym Jak działają strony internetowe powiedzieliśmy sobie, że na każde zapytanie HTTP działający serwer zwraca kody HTTP. Dzięki temu przeglądarka wie jak ma się zachować… Przyszedł zatem czas aby zebrać wszystkie statusy HTTP i wyjaśnić ich znaczenie. Początkujący web developer a także przeciętny użytkownik Internetu kojarzy zapewne kod 404, który informuje o tym, że strona została przeniesiona lub nigdy nie istniała.

Twórca stron internetowych (ale też np. specjalista SEO) wraz z zawodowym doświadczeniem poznaje także inne kody HTTP np. 200, który informuje, że wszystko jest „w porządku” ale także inne jak 500 – który oznacza wewnętrzny błąd serwera lub 301 – który przekierowuje użytkownika na stałe pod inny adres internetowy.

Tworząc back-end, własne API lub crawlery internetowe, warto poznać inne statusy, dzięki którym będziemy świadomiej korzystać z zaawansowanych mechanizmów działania sieci Internet. Nieocenioną pomocą w sporządzeniu niniejszej listy okazała się dokumentacja MDN, do której link umieściłem w źródłach. Kody odpowiedzi HTTP można podzielić na kilka kategorii i będzie to jednocześnie spis treści:

Spis treści:

  1. 100-199: Odpowiedzi informacyjne
  2. 200-299: Odpowiedzi udane
  3. 300-399: Wiadomości przekierowujące
  4. 400-499: Odpowiedzi dotyczące błędów klienta
  5. 500-599: Odpowiedzi dotyczące błędów serwera

100-199: Odpowiedzi informacyjne

100 Continue

Kod odpowiedzi statusu informacyjnego HTTP 100 Continue wskazuje, że wszystko do tej pory jest w porządku i że klient powinien kontynuować żądanie lub zignorować je, jeśli zostało już zakończone.

Aby serwer sprawdził nagłówki żądania, klient musi wysłać Expect: 100-continue jako nagłówek w swoim początkowym żądaniu i otrzymać w odpowiedzi kod stanu 100 Continue przed wysłaniem treści.

101 Switching Protocols

Kod odpowiedzi HTTP 101 Switching Protocols wskazuje protokół, na który przełącza się serwer. Protokół jest określony w nagłówku żądania uaktualnienia otrzymanym od klienta.

Serwer zawiera w tej odpowiedzi nagłówek odpowiedzi Upgrade, aby wskazać protokół, na który się przełączył. Należy również zauważyć, że HTTP/2 wyraźnie zabrania korzystania z tego mechanizmu; jest specyficzny dla HTTP/1.1. W praktyce, mechanizm ten jest używany głównie do ładowania połączenia WebSockets.

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade

102 Przetwarzanie

Ten kod wskazuje, że serwer odebrał i przetwarza żądanie, ale nie ma jeszcze dostępnej odpowiedzi.

103 Early Hints

Ten kod stanu jest przeznaczony przede wszystkim do użycia z nagłówkiem Link, umożliwiając agentowi użytkownika rozpoczęcie wstępnego ładowania zasobów, podczas gdy serwer przygotowuje odpowiedź.

Nagłówek ten nie jest jeszcze wspierany przez przeglądarki: Edge, Firefox, Opera i Safari.

200-299: Odpowiedzi udane

200 OK

Kod odpowiedzi statusu sukcesu HTTP 200 OK wskazuje, że żądanie powiodło się. Odpowiedź 200 jest domyślnie buforowana.

Znaczenie sukcesu zależy od metody żądania HTTP:

GET: zasób został pobrany i jest przesyłany w treści wiadomości.
HEAD: Nagłówki reprezentacji są zawarte w odpowiedzi bez treści wiadomości
POST: Zasób opisujący wynik akcji jest przesyłany w treści wiadomości
TRACE: Treść wiadomości zawiera wiadomość żądania odebraną przez serwer.
Pomyślnym wynikiem PUT lub DELETE często nie jest 200 OK, ale 204 No Content (lub 201 Created, gdy zasób jest przesyłany po raz pierwszy).

201 Created

Kod odpowiedzi HTTP 201 Created wskazuje, że żądanie powiodło się i doprowadziło do utworzenia zasobu. Nowy zasób jest efektywnie tworzony przed odesłaniem odpowiedzi, a nowy zasób jest zwracany w treści wiadomości, a jego lokalizacją jest adres URL żądania lub zawartość nagłówka lokalizacji.

Typowym przypadkiem użycia tego kodu stanu jest wynik żądania POST.

202 Accepted

Kod HTTP 202 wskazuje, że żądanie zostało zaakceptowane do przetwarzania, ale przetwarzanie nie zostało zakończone. W rzeczywistości przetwarzanie mogło jeszcze się nie rozpocząć. Żądanie może ostatecznie zostać rozpatrzone lub nie, ponieważ może zostać odrzucone, gdy przetwarzanie faktycznie ma miejsce.

Kod 202 jest niezobowiązujący, co oznacza, że ​​nie ma możliwości późniejszego wysłania przez HTTP asynchronicznej odpowiedzi wskazującej wynik przetwarzania żądania. Jest przeznaczony do przypadków, w których inny proces lub serwer obsługuje żądanie lub do przetwarzania wsadowego.

203 Non-Authoritative Information

Stan odpowiedzi HTTP 203 Non-Authoritative Information wskazuje, że żądanie powiodło się, ale załączony ładunek został zmodyfikowany przez serwer proxy przekształcający z odpowiedzi 200 (OK) serwera pochodzenia.

Odpowiedź 203 jest zbliżona do wartości 214, oznaczającej zastosowane przekształcenie, kodu nagłówka ostrzeżenia, co ma tę dodatkową zaletę, że można ją zastosować do odpowiedzi z dowolnym kodem statusu.

204 No Content

Kod HTTP 204 No Content wskazuje, że żądanie powiodło się, ale klient nie musi opuszczać swojej bieżącej strony.

Może to być używane na przykład podczas implementowania funkcji „zapisz i kontynuuj edycję” dla w dowolnym CMSie. W takim przypadku do zapisania strony zostanie użyte żądanie PUT, a odpowiedź 204 No Content zostanie wysłana, aby wskazać, że edytora nie należy zastępować inną stroną.

Odpowiedź 204 jest domyślnie buforowana (w takiej odpowiedzi jest zawarty nagłówek ETag).

205 Reset Content

Stan odpowiedzi HTTP 205 Reset Content informuje klienta o konieczności zresetowania widoku dokumentu, czyli na przykład wyczyszczenia zawartości formularza, zresetowania stanu kanwy lub odświeżenia interfejsu użytkownika.

206 Partial Content

Kod HTTP 206 Partial Content wskazuje, że żądanie powiodło się, a treść zawiera żądane zakresy danych, zgodnie z opisem w nagłówku Range żądania.

Jeśli istnieje tylko jeden zakres, Content-Type całej odpowiedzi jest ustawiany na typ dokumentu i dostarczany jest Content-Range. Jeśli kilka zakresów jest odsyłanych, Content-Type jest ustawiany na multipart/byteranges, a każdy fragment obejmuje jeden zakres, a opisują go Content-Range i Content-Type.

300-399: Wiadomości przekierowujące

300 Multiple Choices

Status przekierowania HTTP 300 Multiple Choices wskazuje na to, że zapytanie ma więcej niż jedną odpowiedź. W takim przypadku przeglądarka bądź sam użytkownik powinien wybrać jedną z nich. Nie ma standardowego sposobu wyboru jednej z odpowiedzi, dlatego ten kod odpowiedzi jest bardzo rzadko używany. Jeśli serwer ma preferowany wybór, powinien wygenerować nagłówek Location.

301 Moved Permanently

Przekierowanie 301 oznacza, że żądany zasób został definitywnie przeniesiony do nowego adresu URL za pomocą nagłówka Location. Kiedy przeglądarka natrafi na ten status odpowiedzi, natychmiast przekierowuje użytkownika do nowego adresu URL a wyszukiwarki aktualizują adres URL we własnym indeksie.

Kodu 301 należy używać jako odpowiedź na żądania GET lub HEAD. Dla żądań POST należy używać przekierowania 308 Permanent Redirect.

Przykład:

HTTP/1.1 301 Moved Permanently
Location: http://mansfeld.pl/blog/

302 Found

Ten kod odpowiedzi oznacza, że żądany zasób został tymczasowo przeniesiony na adres URL podany w nagłówku Location. Przeglądarka przekierowuje do tej strony, ale wyszukiwarki nie aktualizują swoich linków do zasobu (w żargonie SEO mówi się, że moc linku nie jest przekazywana na nowy adres URL).

Nawet jeśli specyfikacja wymaga, aby metoda (i treść) nie była zmieniana podczas przekierowywania, nie wszystkie przeglądarki są wobec tego kompatybilne dlatego zaleca się, aby ustawić kod 302 tylko jako odpowiedź dla metod GET lub HEAD i zamiast tego użyć 307 Temporary Redirect, ponieważ zmiana metody jest w tym przypadku wyraźnie zabroniona.

303 See Other

Serwer wysłał tę odpowiedź, aby polecić klientowi pobranie żądanego zasobu za pomocą żądania GET pod innym URI.

304 Not Modified

Nagłówek używany do celów pamięci podręcznej. Informuje klienta o tym, że odpowiedź HTTP nie została zmodyfikowana.

307 Temporary Redirect

Serwer wysyła tę odpowiedź, aby przekierować klienta do zasobu dostępnego pod innym identyfikatorem URI przy użyciu tej samej metody (np. GET lub POST), która została użyta we wcześniejszym żądaniu.

308 Permanent Redirect

Przekierowanie Permanent Redirect ma tę samą semantykę jak 301 Moved Permanently z tą różnicą, że klient nie może zmienić metody (GET / POST). Jeżeli w pierwszym żądaniu użyto metody POST to w drugim żądaniu też należy użyć tej metody.

400-499: Odpowiedzi dotyczące błędów klienta

500-599: Odpowiedzi dotyczące błędów serwera

Źródła:

Oceń artykuł na temat: Kody HTTP – lista kodów statusów odpowiedzi HTTP
Średnia : 4.6 , Maksymalnie : 5 , Głosów : 5