Kod odpowiedzi HTTP

Z Wikipedii, wolnej encyklopedii

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[edytuj | edytuj kod]

Kody informacyjne[edytuj | edytuj kod]

kod opis słowny znaczenie/zwrócony zasób
100 Continue Kontynuuj – prośba o dalsze wysyłanie zapytania
101 Switching Protocols Zmiana protokołu
110 Connection Timed Out Przekroczono czas połączenia. Serwer zbyt długo nie odpowiada.
111 Connection refused Serwer odrzucił połączenie

Kody powodzenia[edytuj | edytuj kod]

kod opis słowny znaczenie/zwrócony zasób
200 OK Zawartość żądanego dokumentu (najczęściej zwracany nagłówek odpowiedzi w komunikacji WWW Internetu)
201 Created Utworzono – wysłany dokument został zapisany na serwerze
202 Accepted Przyjęto – zapytanie zostało przyjęte do obsłużenia, lecz jego zrealizowanie jeszcze się nie skończyło
203 Non-Authoritative Information Informacja nieautorytatywna – zwrócona informacja nie odpowiada dokładnie odpowiedzi pierwotnego serwera, lecz została utworzona z lokalnych bądź zewnętrznych kopii
204 No content Brak zawartości – serwer zrealizował zapytanie klienta i nie potrzebuje zwracać żadnej treści
205 Reset Content Przywróć zawartość – serwer zrealizował zapytanie i klient powinien przywrócić pierwotny wygląd dokumentu
206 Partial Content Część 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[edytuj | edytuj kod]

kod opis słowny znaczenie/zwrócony zasób
300 Multiple Choices Wiele 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
301 Moved Permanently Trwale przeniesiony – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem
302 Found Znaleziono – żądany zasób jest chwilowo dostępny pod innym adresem, a przyszłe odwołania do zasobu powinny być kierowane pod adres pierwotny
303 See Other Zobacz 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.
304 Not Modified Nie 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)
305 Use Proxy Użyj serwera proxy – do żądanego zasobu trzeba odwołać się przez serwer proxy podany w nagłówku Location odpowiedzi
306 Switch Proxy Kod nieużywany, aczkolwiek zastrzeżony dla starszych wersji protokołu
307 Temporary Redirect Tymczasowe 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ść
310 Too many redirects Zbyt wiele przekierowań.

Kody błędu aplikacji klienta[edytuj | edytuj kod]

kod opis słowny znaczenie/zwrócony zasób
400 Bad Request Nieprawidł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)
401 Unauthorized Nieautoryzowany dostęp – żądanie zasobu, który wymaga uwierzytelnienia
402 Payment Required Wymagana opłata – odpowiedź zarezerwowana na przyszłość. Google Developers API korzysta z tego kodu, jeśli dany programista przekroczył dzienny limit zapytań[1].
403 Forbidden Zabroniony – serwer zrozumiał zapytanie, lecz konfiguracja bezpieczeństwa zabrania mu zwrócić żądany zasób
404 Not Found Nie znaleziono – serwer nie odnalazł zasobu według podanego URL ani niczego, co by wskazywało na istnienie takiego zasobu w przeszłości
405 Method Not Allowed Niedozwolona metoda – metoda zawarta w żądaniu nie jest dozwolona dla wskazanego zasobu, odpowiedź zawiera też listę dozwolonych metod
406 Not Acceptable Niedozwolone – 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
407 Proxy Authentication Required Wymagane uwierzytelnienie do serwera pośredniczącego (ang. proxy) – analogicznie do kodu 401, dotyczy dostępu do serwera proxy
408 Request Timeout Koniec czasu oczekiwania na żądanie – klient nie przesłał zapytania do serwera w określonym czasie
409 Conflict Konflikt – żą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ść).
410 Gone Zniknął (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
411 Length required Wymagana 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
412 Precondition Failed Warunek wstępny nie może być spełniony – serwer nie może spełnić przynajmniej jednego z warunków zawartych w zapytaniu
413 Request Entity Too Large Encja zapytania zbyt długa – całkowita długość zapytania jest zbyt długa dla serwera
414 Request-URI Too Long Adres URI zapytania zbyt długi – długość zażądanego URI jest większa niż maksymalna oczekiwana przez serwer
415 Unsupported Media Type Nieznany sposób żądania – serwer odmawia przyjęcia zapytania, ponieważ jego składnia jest niezrozumiała dla serwera
416 Requested Range Not Satisfiable Zakres bajtowy podany w zapytaniu nie do obsłużenia – klient podał w zapytaniu zakres, który nie może być zastosowany do wskazanego zasobu
417 Expectation Failed Oczekiwana 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
418 I’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]
421 Misdirected Request Zapytanie zostało skierowane do serwera, który nie powinien go otrzymać lub który nie jest w stanie na nie odpowiedzieć.[4]
422 Unprocessable entity Zapytanie było poprawnie sformułowane, ale było niemożliwe do kontynuowania z powodu semantycznych błędów.
423 Locked (WebDAV) Próba uzyskania dostępu do zasobu, który jest aktualnie zablokowany.[4]
424 Failed Dependency (WebDAV) Brak powodzenia żądania, ponieważ jest ono zależne od innego żądania, które również nie powiodło się.[4]
425 Too Early Serwer nie chce ryzykować przetwarzania żądania, które może zostać powtórzone ze względu na ryzyko ataku typu Replay.[4]
426 Upgrade Required Serwer odmawia wykonania żądania używając aktualnego protokołu. Wymagany protokół dla klienta przekazany jest w nagłówku Upgrade.[4]
428 Precondition Required Brak nagłówka wstępnego, który jest wymagany przez serwer. Żądanie musi być warunkowe.[4]
429 Too Many Requests Użytkownik wysłał za wiele żądań w danym czasie.
431 Request Header Fields Too Large Serwer odmawia wykonania żądania ze względu na zbyt duże pole lub pola nagłówka.[4]
451 Unavailable For Legal Reasons Zawartość 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[edytuj | edytuj kod]

kod opis słowny znaczenie/zwrócony zasób
500 Internal Server Error Wewnętrzny błąd serwera – serwer napotkał niespodziewane trudności, które uniemożliwiły zrealizowanie żądania
501 Not Implemented Nie zaimplementowano – serwer nie dysponuje funkcjonalnością wymaganą w zapytaniu; ten kod jest zwracany, gdy serwer otrzymał nieznany typ zapytania
502 Bad Gateway Błą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
503 Service Unavailable Usługa niedostępna – serwer nie jest w stanie w danej chwili zrealizować zapytania klienta ze względu na przeciążenie
504 Gateway Timeout Przekroczony 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
505 HTTP Version Not Supported Nieobsługiwana wersja HTTP – serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP
506 Variant Also Negotiates[5] Wariant również negocjuje (w wolnym tłumaczeniu)
507 Insufficient Storage (WebDAV)[6] Serwer nie jest w stanie zapisać danych związanych z wykonaniem zapytania
508 Loop Detected (WebDAV)[7] Serwer wykrył nieskończoną pętlę w trakcie przetwarzania zapytania
509 Bandwidth Limit Exceeded Serwer jest tymczasowo niedostępny, ponieważ właściciel strony przekroczył limit transferu danych.
510 Not Extended[8] Brak rozszerzenia HTTP koniecznego do obsługi danego zapytania
511 Network 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ż[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  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 [online], 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[edytuj | edytuj kod]