Statusy odpowiedzi Http iseebugs.plStatusy odpowiedzi

W jednym z artykułów pisałem, że odpowiedzi HTTP składają się między innymi ze statusu odpowiedzi. |Zostały tam przedstawione niektóre z typowych statusów odpowiedzi HTTP. Teraz poświęcimy im trochę więcej czasu.

Po co są kody odpowiedzi?

Aby w łatwy sposób można było wiedzieć czy zapytanie wysłane na serwer się powiodło czy nie. A jeżeli nie to dlaczego.

Istnieje kilka głównych kategorii odpowiedzi aby można było bez wnikania w cały kod wiedzieć czy ewentualny błąd był np. po stronie aplikacji, użytkownika. Poniżej zostaną przedstawione poszczególne grupy wraz z wyszczególnieniem najważniejszych kodów.

Kody Informacyjne – HTTP 1xx

Kody które oznaczają, że żądanie zostało odebrane ale nadal jest przetwarzane.

KodOpis słownyznaczenie / zwracany zasób
100ContinueKontynuuj – wyślij jeszcze raz te zapytanie.
110Connection Timed OutPrzekroczono czas połączenia.
111Connection refusedSerwer odrzucił połączenie
Kody informacyjne 1xx

Kody Sukcesu – HTTP 2xx

Kody oznaczają sukces danego zapytania.

KodOpis słownyznaczenie / zwracany zasób
200OKżądany zasób, np. przy żądaniu GET
201Createdpotwierdzenie zapisania danych na serwerze, np. stworzenie nowego użytkownika
202Acceptedprzyjęto do realizacji, ale jeszcze nie skończono go przetwarzać
204No contentserwer wykonał zapytanie i nie ma potrzeby zwracać żadnej treści
Kody sukcesu 2xx

Kody Przekierowania – HTTP 3xx

Kody oznaczają, że zapytanie zostało przekierowanie na inny adres.

Podobieństwa i różnice:

  • Kody 301 oraz 302 HTTP są używane do stałych i tymczasowych zmian adresów, natomiast kod 303 jest przeznaczony do żądań typu POST.
  • Kod 302 i 307 oba są wykorzystywane do tymczasowych przekierowań. 307 zachowuje oryginalną metodę HTTP za to 302 może być zmienione na GET.
  • Kod 301 i 308 oba są wykorzystywane do tymczasowych przekierowań. 308 zachowuje oryginalną metodę HTTP za to 301 może być zmienione na GET.
KodOpis słownyznaczenie / zwracany zasób
301Moved permanentlytrwale przeniesiony – żądany zasób zmienił swój URI i tam powinniśmy go szukać. Może być zamieniona na GET.
302Foundznaleziono – żądany zasób jest tymczasowo dostępny pod innym adresem. Może być zamieniona na GET.
303See otherzobacz inne – odpowiedź na żądanie znajduje się pod innym URI. Dedykowane dla zapytań typu POST.
307Temporary redirectedtymczasowe przekierowanie – żądany zasób tymczasowo znajduje się pod innym adresem. Zachowuje oryginalną metodę HTTP.
308Permanent Redirectedtrwałe przekierowanie – żadany zasób zmienił swóje URI i tam powinniśmy go szukać. Zachowuje oryginalną metodę HTTP.
Kody przekierowań 3xx

Kody błędów po stronie klienta – HTTP 4xx

W przypadku błędnego żądania otrzymujemy w odpowiedzi status 4xx.

KodOpis słownyznaczenie / zwracany zasób
400Bad Requestzłe zapytanie – błędne żądanie, błąd użytkownika w zapytaniu np. złe body –
401Unauthorizednieautoryzowany dostęp – żądanie wymaga autoryzacji
403Forbiddenzabroniony – użytkownik nie posiada uprawnień do zasobu
404Not Foundnie odnaleziono zasobu
409Conflictkonflikt – występuje konflikt z istniejącym zasobem
414Request URI Too Longadres URI za długi – np. przy przekazywaniu dużej ilości parametrów w URI dla metody GET
Kody błędów klienta 4xx

Kody błędów po stronie serwera – HTTP 5xx

Kody odpowiedzi w przypadku błędów po stronie serwera np. nieobsłużenie jakiegoś wyjątku przez programistę lub nieprzetworzenie błędnej odpowiedzi z usługi zewnętrznej.

KodOpis słownyznaczenie / zwracany zasób
500Internal Server Errorwewnętrzny błąd serwera – błędne żądanie, błąd użytkownika w zapytaniu np. złe body –
501Not Implementedniezaimplementowane – serwer nie obsługuje metody żądania lub funkcji
503Service Unavailableusługa niedostępna – serwer tymczasowo wyłączony z dostępu lub przeciążony
Kody błędów klienta 5xx

Podsumowanie

W tym artykule szerzej przyjrzeliśmy się kodom odpowiedzi HTTP oraz poznaliśmy podstawowe różnice pomiędzy ich grupami.

Bibliografia

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *