Kod odpowiedzi HTTP

Kod odpowiedzi HTTP – numeryczna dana wysyłana przez serwer HTTP do aplikacji klienta. Informuje o sposobie realizacji (bądź jej braku) zapytania klienckiego. Znajduje się na początku odpowiedzi, tuż za wersją protokołu HTTP i przed słownym opisem kodu odpowiedzi, np. HTTP/1.1 400 Bad Request

Kody odpowiedzi protokołu HTTP 1.1 wraz z opisem

Kody informacyjne

kodopis słownyznaczenie/zwrócony zasób
100ContinueKontynuuj – prośba o dalsze wysyłanie zapytania
101Switching ProtocolsZmiana protokołu
110Connection Timed OutPrzekroczono czas połączenia. Serwer zbyt długo nie odpowiada.
111Connection refusedSerwer odrzucił połączenie

Kody powodzenia

kodopis słownyznaczenie/zwrócony zasób
200OKZawartość żądanego dokumentu (najczęściej zwracany nagłówek odpowiedzi w komunikacji WWW Internetu)
201CreatedUtworzono – wysłany dokument został zapisany na serwerze
202AcceptedPrzyjęto – zapytanie zostało przyjęte do obsłużenia, lecz jego zrealizowanie jeszcze się nie skończyło
203Non-Authoritative InformationInformacja nieautorytatywna – zwrócona informacja nie odpowiada dokładnie odpowiedzi pierwotnego serwera, lecz została utworzona z lokalnych bądź zewnętrznych kopii
204No contentBrak zawartości – serwer zrealizował zapytanie klienta i nie potrzebuje zwracać żadnej treści
205Reset ContentPrzywróć zawartość – serwer zrealizował zapytanie i klient powinien przywrócić pierwotny wygląd dokumentu
206Partial ContentCzęść zawartości – serwer zrealizował tylko część zapytania typu GET, odpowiedź musi zawierać nagłówek Content-Range informujący o zakresie bajtowym zwróconego elementu

Kody przekierowania

kodopis słownyznaczenie/zwrócony zasób
300Multiple ChoicesWiele możliwości – istnieje więcej niż jeden sposób obsłużenia danego zapytania, serwer może podać adres zasobu, który pozwala na wybór jednoznacznego zapytania spośród możliwych
301Moved PermanentlyTrwale przeniesiony – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem
302FoundZnaleziono – żądany zasób jest chwilowo dostępny pod innym adresem, a przyszłe odwołania do zasobu powinny być kierowane pod adres pierwotny
303See OtherZobacz inne – odpowiedź na żądanie znajduje się pod innym URI i tam klient powinien się skierować. To jest właściwy sposób przekierowywania w odpowiedzi na żądanie metodą POST.
304Not ModifiedNie zmieniono – zawartość zasobu nie podległa zmianie według warunku przekazanego przez klienta (np. data ostatniej wersji zasobu pobranej przez klienta – pamięć podręczna przeglądarki)
305Use ProxyUżyj serwera proxy – do żądanego zasobu trzeba odwołać się przez serwer proxy podany w nagłówku Location odpowiedzi
306Switch ProxyKod nieużywany, aczkolwiek zastrzeżony dla starszych wersji protokołu
307Temporary RedirectTymczasowe przekierowanie – żądany zasób znajduje się chwilowo pod innym adresem URI, odpowiedź powinna zawierać zmieniony adres zasobu, na który klient zobowiązany jest się przenieść
310Too many redirectsZbyt wiele przekierowań.

Kody błędu aplikacji klienta

kodopis słownyznaczenie/zwrócony zasób
400Bad RequestNieprawidłowe zapytanie – żądanie nie może być obsłużone przez serwer z powodu nieprawidłowości postrzeganej jako błąd użytkownika (np. błędna składnia zapytania)
401UnauthorizedNieautoryzowany dostęp – żądanie zasobu, który wymaga uwierzytelnienia
402Payment RequiredWymagana opłata – odpowiedź zarezerwowana na przyszłość. Google Developers API korzysta z tego kodu, jeśli dany programista przekroczył dzienny limit zapytań[1].
403ForbiddenZabroniony – serwer zrozumiał zapytanie, lecz konfiguracja bezpieczeństwa zabrania mu zwrócić żądany zasób
404Not FoundNie znaleziono – serwer nie odnalazł zasobu według podanego URL ani niczego co by wskazywało na istnienie takiego zasobu w przeszłości
405Method Not AllowedNiedozwolona metoda – metoda zawarta w żądaniu nie jest dozwolona dla wskazanego zasobu, odpowiedź zawiera też listę dozwolonych metod
406Not AcceptableNiedozwolone – zażądany zasób nie jest w stanie zwrócić odpowiedzi mogącej być obsłużonej przez klienta według informacji podanych w zapytaniu
407Proxy Authentication RequiredWymagane uwierzytelnienie do serwera pośredniczącego (ang. proxy) – analogicznie do kodu 401, dotyczy dostępu do serwera proxy
408Request TimeoutKoniec czasu oczekiwania na żądanie – klient nie przesłał zapytania do serwera w określonym czasie
409ConflictKonflikt – żądanie nie może być zrealizowane, ponieważ występuje konflikt z obecnym statusem zasobu, ten kod odpowiedzi jest zwracany tylko w przypadku podejrzewania przez serwer, że klient może znaleźć przyczyny błędu i przesłać ponownie prawidłowe zapytanie. Odpowiedź serwera powinna zawierać informację umożliwiające klientowi rozwiązanie problemu, jednak nie jest to obowiązkowe (np. przesłanie 2 razy identycznego dokumentu kiedy wymagana jest unikalność).
410GoneZniknął (usunięto) – zażądany zasób nie jest dłużej dostępny i nieznany jest jego ewentualny nowy adres URI; klient powinien już więcej nie odwoływać się do tego zasobu
411Length requiredWymagana długość – serwer odmawia zrealizowania zapytania ze względu na brak nagłówka Content-Length w zapytaniu; klient może powtórzyć zapytanie dodając doń poprawny nagłówek długości
412Precondition FailedWarunek wstępny nie może być spełniony – serwer nie może spełnić przynajmniej jednego z warunków zawartych w zapytaniu
413Request Entity Too LargeEncja zapytania zbyt długa – całkowita długość zapytania jest zbyt długa dla serwera
414Request-URI Too LongAdres URI zapytania zbyt długi – długość zażądanego URI jest większa niż maksymalna oczekiwana przez serwer
415Unsupported Media TypeNieznany sposób żądania – serwer odmawia przyjęcia zapytania, ponieważ jego składnia jest niezrozumiała dla serwera
416Requested Range Not SatisfiableZakres bajtowy podany w zapytaniu nie do obsłużenia – klient podał w zapytaniu zakres, który nie może być zastosowany do wskazanego zasobu
417Expectation FailedOczekiwana wartość nie do zwrócenia – oczekiwanie podane w nagłówku Expect żądania nie może być spełnione przez serwer lub – jeśli zapytanie realizuje serwer proxy – serwer ma dowód, że oczekiwanie nie będzie spełnione przez następny w łańcuchu serwer realizujący zapytanie
418I’m a teapot„Jestem czajnikiem” – tzw. easter egg. Zdefiniowany w 1998. Obecnie nie jest implementowany do serwerów HTTP, ale znane są takie przypadki[2][3]
421Misdirected RequestZapytanie zostało skierowane do serwera, który nie powinien go otrzymać lub który nie jest w stanie na nie odpowiedzieć.[4]
422Unprocessable entityZapytanie było poprawnie sformułowane, ale było niemożliwe do kontynuowania z powodu semantycznych błędów.
423Locked (WebDAV)Próba uzyskania dostępu do zasobu, który jest aktualnie zablokowany.[4]
424Failed Dependency (WebDAV)Brak powodzenia żądania, ponieważ jest ono zależne od innego żądania, które również nie powiodło się.[4]
425Too EarlySerwer nie chce ryzykować przetwarzania żądania, które może zostać powtórzone ze względu na ryzyko ataku typu Replay.[4]
426Upgrade RequiredSerwer odmawia wykonania żądania używając aktualnego protokołu. Wymagany protokół dla klienta przekazany jest w nagłówku Upgrade.[4]
428Precondition RequiredBrak nagłówka wstępnego, który jest wymagany przez serwer. Żądanie musi być warunkowe.[4]
429Too Many RequestsUżytkownik wysłał za wiele żądań w danym czasie.
431Request Header Fields Too LargeSerwer odmawia wykonania żądania ze względu na zbyt duże pole lub pola nagłówka.[4]
451Unavailable For Legal ReasonsZawartość niedostępna z powodów prawnych – strona lub zasób zostały zablokowane z powodów naruszenia prawa, w tym także z powodu ocenzurowania zawartości przez władze. Wartość kodu jest nawiązaniem do powieści „451 stopni Fahrenheita”.

Kody błędu serwera HTTP

kodopis słownyznaczenie/zwrócony zasób
500Internal Server ErrorWewnętrzny błąd serwera – serwer napotkał niespodziewane trudności, które uniemożliwiły zrealizowanie żądania
501Not ImplementedNie zaimplementowano – serwer nie dysponuje funkcjonalnością wymaganą w zapytaniu; ten kod jest zwracany, gdy serwer otrzymał nieznany typ zapytania
502Bad GatewayBłąd bramy – serwer – spełniający rolę bramy lub pośrednika – otrzymał niepoprawną odpowiedź od serwera nadrzędnego i nie jest w stanie zrealizować żądania klienta
503Service UnavailableUsługa niedostępna – serwer nie jest w stanie w danej chwili zrealizować zapytania klienta ze względu na przeciążenie
504Gateway TimeoutPrzekroczony czas bramy – serwer – spełniający rolę bramy lub pośrednika – nie otrzymał w ustalonym czasie odpowiedzi od wskazanego serwera HTTP, FTP, LDAP itp. lub serwer DNS jest potrzebny do obsłużenia zapytania
505HTTP Version Not SupportedNieobsługiwana wersja HTTP – serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP
506Variant Also Negotiates[5]Wariant również negocjuje (w wolnym tłumaczeniu)
507Insufficient Storage (WebDAV)[6]Serwer nie jest w stanie zapisać danych związanych z wykonaniem zapytania
508Loop Detected (WebDAV)[7]Serwer wykrył nieskończoną pętlę w trakcie przetwarzania zapytania
509Bandwidth Limit ExceededSerwer jest tymczasowo niedostępny, ponieważ właściciel strony przekroczył limit transferu danych.
510Not Extended[8]Brak rozszerzenia HTTP koniecznego do obsługi danego zapytania
511Network Authentication Required[9]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).

Zobacz też

Przypisy

  1. Google: Google API Standard Error Responses. 2016-07-13. [dostęp 2017-06-21].
  2. HTTP 418 zaimplementowane na BBC CBeebies (Internet Archive). bbc.co.uk. [zarchiwizowane z tego adresu (2012-06-24)]..
  3. Implementacja błędu 418 przez Google.
  4. a b c d e f g Autor: Sirius Pro, Błąd Failed to load Resource w WordPressie [4xx i 5xx] ‹ Blog Sirius Pro, Blog Sirius Pro, 26 lipca 2020 [dostęp 2020-07-28] (pol.).
  5. RFC 2295 ↓, s. 25.
  6. RFC 4918 ↓, s. 79.
  7. RFC 5842 ↓, s. 34.
  8. RFC 2774 ↓, s. 11.
  9. RFC 6585 ↓, s. 4.

Linki zewnętrzne