rD-05, Programowanie, ! Java, Java Server Programming


Dodatek D.

Kody stanu HTTP

Kody stanu HTTP są pogrupowane w sposób przedstawiony w tabeli D.1.

Tabela D.1.

Grupy kodów stanu HTTP

Zakres kodów

Znaczenie odpowiedzi

100-199

Informacyjne

200-299

Żądanie klienta pomyślne

300-399

Żądanie klienta przekierowane, konieczne następne działanie

400-499

Żądanie klienta niekompletne

500-599

Błąd serwera

Tabela D.2 wylicza stałe kodów stanu zdefiniowane w interfejsie HttpServletResponse i wykorzystywane jako parametry metod setStatus() i sendError(). Numer wersji w ostatniej kolumnie odnosi się do wersji protokołu HTTP, która pierwsza zdefiniowała dany kod stanu. Servlet API 2.0 dodał stałe dla kodów stanu HTTP w wersji 1.1, jak opisano w proponowanym standardzie RFC 2068. Servlet API 2.2 dodał kody stanu 416 i 417, jak opisano w próbnym standardzie RFC 2616. Proszę zauważyć, że kody stanu HTTP/1.1 wymagają przeglądarki zgodnej z HTTP/1.1.

Większa ilość informacji na temat HTTP jest dostępna w książce „Web Client Programming” autorstwa Clintona Wonga (O'Reilly). Najnowsza specyfikacja HTTP/1.1 jest dostępna w dokumencie RFC 2616 pod adresem http://www.ietf.org/rfc/rfc2616.txt.

Tabela D.2.

Stałe kodów stanu HTTP

Stała

Kod

Domyślna wiadomość

Znaczenie

Wersja HTTP

SC_CONTINUE

100

Continue

Serwer otrzymał początkową część żądania, klient może kontynuować z dalszymi częściami.

1.1

SC_SWITCHING_PROTOCOLS

101

Switching Protocols

Serwer chce wypełnić żądanie klienta zmiany protokołu na określony w nagłówku żądania Upgrade. Działanie to może zawierać przełączenie na nowszą wersję HTTP lub własny synchroniczny kanał wideo.

1.1

SC_OK.

201

OK

Żądanie klienta zakończyło się sukcesem i odpowiedź serwera zawiera żądane dane. Jest to domyślny kod stanu.

1.0

SC_CREATED

201

Created

Na serwerze został utworzony zasób, przypuszczalnie w odpowiedzi na żądanie klienta. Główna część odpowiedzi powinna zawierać URL (-e), pod którym można ten nowy zasób odnaleźć, z najbardziej specyficznym URL-em zawartym w nagłówku Location. Jeżeli zasób nie może zostać utworzony natychmiast, powinien zamienne zostać zwrócony kod stanu SC_ACCEPTED.

1.0

SC_ACCEPTED

202

Accepted

Żądanie zostało przyjęte do przetwarzania, ale nie zostało jeszcze ukończone. Serwer powinien opisać aktualny stan żądania w głównej części odpowiedzi. Serwer nie jest zobligowany do działania na ani kończenia wykonywania żądania.

1.0

SC_NON_AUTHORITATIVE_INFORMATION

203

Non-Authoritative Information

Nagłówki odpowiedzi HTTP nadeszły z lokalnego lub niezależnego źródła, a nie z oryginalnego serwera. Zwykłe serwlety nie mają powodów, by wykorzystywać ten kod stanu

1.1

SC_NO_CONTENT

204

No Content

Żądanie powiodło się, ale nie istnieje główna część nowej odpowiedzi. Przeglądarki przyjmujące ten kod powinny zachować swój aktualny widok dokumentów. Kod ten jest przydatny serwletowi, kiedy otrzymuje on dane z formularza, ale chce, aby przeglądarka zatrzymała się na formularzu, w ten sposób unikając komunikatu o błędzie „Dokument nie zawiera żadnych danych”.

1.0

SC_RESET_CONTENT

205

Reset Content

Żądanie powiodło się i przeglądarka powinno wyczyścić (ponownie pobrać) aktualnie przeglądany dokument. Kod ten jest przydatny serwletowi, który pobiera dane z formularza i chce, aby został on wyświetlony w czystej formie.

1.1

SC_PARTIAL_CONTENT

206

Partial Content

Serwer ukończył częściowe żądanie GET i zwrócił część dokumentu określoną w nagłówku Range klienta.

1.1

SC_MULTIPLE_CHOICES

300

Multiple Choices

Żądany URL odnosi się do więcej niż jednego zasobu. Na przykład, URL może odnosić się do dokumentu przetłumaczonego na wiele języków. Główna część odpowiedzi powinna wyjaśniać klientowi opcje w formie odpowiedniej do typu zawartości żądania. Serwer może zasugerować wybór przy pomocy nagłówka Location.

1.1

SC_MOVED_PERMANENTLY

301

Moved Permanently

Żądany zasób został na stałe przeniesiony do nowej lokacji. Przyszłe odwołania powinny wykorzystywać w żądaniach nowy URL. Nowe umiejscowienie jest podane w nagłówku Location. Większość przeglądarek automatycznie przekierowuje do nowej lokacji.

1.0

SC_MOVED_TEMPORARILY

302

Moved Temporarily

Żądany zasób został czasowo przeniesiony do innej lokacji, ale przyszłe żądania powinny dalej wykorzystywać oryginalny URI w celu uzyskania dostępu do zasobu. Nowe umiejscowienie jest podane w nagłówku Location. Większość przeglądarek automatycznie przekierowuje do nowej lokacji.

1.0

SC_SEE_OTHER

303

See Other

Żądany zasób przetworzył żądanie, ale klient powinien pobrać swoją odpowiedź poprzez wykonanie GET na URL-u określonym w nagłówku Location. Kod ten jest przydatny serwletowi, który chce otrzymywać dane POST, po czym przekierowywać klienta do innego zasobu w celu wygenerowania odpowiedzi.

1.1

SC_NOT_MODIFIED

304

Not Modified

Żądany dokument nie został zmieniony od daty wymienionej w nagłówku żądania If-Modified-Since. Zwykłe serwlety nie powinny być zmuszone do korzystania z tego kodu stanu. Zamiast tego implementują one getLastModified().

1.0

SC_USE_PROXY

305

Use Proxy

Dostęp do żądanego zasobu musi być uzyskiwany poprzez serwer proxy podany w nagłówku Location.

1.1

SC_BAD_REQUEST

400

Bad Request

Serwer nie mógł zrozumieć żądania, prawdopodobnie z powodu błędu składni.

1.0

SC_UNAUTHORIZED

401

Unauthorized

Żądaniu brakuje właściwego uwierzytelnienia. Wykorzystywany w połączeniu z nagłówkami WWW-Authenticate i Authorization.

1.0

SC_PAYMENT_REQUIRED

402

Payment Required

Zarezerwowany do przyszłego użytku. Istnieją propozycje, by wykorzystywać ten kod w połączeniu z nagłówkiem Charge-To, ale nie stał się on jeszcze standardem w czasie oddawania niniejszej książki do druku.

1.1

SC_FORBIDDEN

403

Forbidden

Żądanie zostało zrozumiane, ale serwer nie chce go wypełnić. Serwer może wyjaśnić powody swojego oporu w głównej części odpowiedzi.

1.0

SC_NOT_FOUND

404

Not Found

Żądany zasób nie mógł zostać odnaleziony, lub jest niedostępny.

1.0

SC_METHOD_NOT_ALLOWED

405

Method Not Allowed

Metoda wykorzystywana przez klienta nie jest obsługiwana w tym URL-u. Metody obsługiwane muszą zostać wymienione w nagłówku odpowiedzi Accept.

1.1

SC_NOT_ACCEPTABLE

406

Not Acceptable

Żądany zasób istnieje, ale w formacie nie przyjmowanym przez klienta (jak wskazano w nagłówku (ach) żądania Accept.

1.1

SC_PROXY_AUTHENTICATION_REQUIRED

407

Proxy Authentication Required

Serwer proxy musi dokonać uwierzytelnienia, zanim umożliwi przejście dalej. Wykorzystywany z nagłówkiem Proxy-Authenticate. Zwykłe serwlety nie powinny być zmuszone do korzystania z tego kodu stanu.

1.1

SC_REQUEST_TIMEOUT

408

Request Timeout

Klient nie dokończył swojego żądania w czasie, w którym serwer był skłonny go słuchać.

1.1

SC_CONFLICT

409

Conflict

Żądanie nie mogło zostać wypełnione, ponieważ nastąpił konflikt z innym żądaniem lub konfiguracją serwera. Kod ten występuje najczęściej w przypadku żądań HTTP PUT. W których plik jest poddawany kontroli oraz w przypadku konfliktów nowych wersji z poprzednimi. Serwer może wysłać opis konfliktu w głównej części odpowiedzi

1.0

SC_GONE

410

Gone

Zasób nie jest już dostępny na danym serwerze, a żaden alternatywny adres nie jest znany. Kod ten powinien być wykorzystywany jedynie w przypadku, kiedy zasób został trwale usunięty. Zwykłe serwlety nie powinny być zmuszone do korzystania z tego kodu stanu.

1.1

SC_LENGTH_REQUIRED

411

Length Required

Serwer nie przyjmie żądania bez nagłówka Content-Length.

1.1

SC_PRECONDITION_FAILED

412

Precondition Failed

Wynik wstępnego warunku określonego w jednym lub więcej nagłówku If... wynosi false.

1.1

SC_REQUEST_ENTITY_TOO_LARGE

413

Request Entity Too Large

Serwer nie przetworzy żądania, ponieważ zawartość żądania jest zbyt duża. Jeżeli ograniczenie to jest tymczasowe, serwer może dołączyć nagłówek Retry-After.

1.1

SC_REQUEST_URI_TOO_LONG

414

Request-URI Too Long

Serwer nie przetworzy żądania, ponieważ URI żądania jest dłuższe, niż może przyjąć. Może to nastąpić, kiedy klient przypadkowo przekonwertował żądanie POST na GET. Zwykłe serwlety nie powinny być zmuszone do korzystania z tego kodu stanu.

1.1

SC_UNSUPPORTED_MEDIA_TYPE

415

Unsupported Media Type

Serwer nie przetworzy żądania, ponieważ jego główna część posiada format nieobsługiwany przez żądany zasób.

1.1

SC_REQUESTED_RANGE_NOT_SATISFYABLE

416

Requested Range Not Satisfiable

Zakres zawartości żądanej przez klienta poprzez nagłówek Range koliduje z wielkością żądanego zasobu

1.1 (RFC 2616)

SC_EXPECTATION_FAILED

417

Expectation Failed

Oczekiwanie podane przez klienta poprzez nagłówek Expect nie mogło zostać spełnione.

1.1 (RFC 2616)

SC_INTERNAL_SERVER_ERROR

500

Internal Server Error

Wewnątrz serwera nastąpił niespodziewany błąd, który przeszkodziła w wypełnieniu żądania.

1.0

SC_NOT_IMPLEMENTED

501

Not Implemented

Serwer nie obsługuje funkcjonalności potrzebnej do wypełnienia żądania.

1.0

SC_BAD_GATEWAY

502

Bad Gateway

Serwer działający jako brama lub proxy nie otrzymał prawidłowej odpowiedzi od głównego serwera.

1.0

SC_SERVICE_UNAVAILABLE

503

Service Unavailable

Usługa (serwer) jest tymczasowo niedostępna, ale powinna zostać przywrócona w przyszłości. Jeżeli serwer wie, kiedy będzie ponownie dostępny, może dołączyć nagłówek Retry-After.

1.0

SC_GATEWAY_TIMEOUT

504

Gateway Timeout

Serwer działający jako brama lub proxy nie otrzymał prawidłowej odpowiedzi od głównego serwera w czasie oczekiwania.

1.1

SC_HTTP_VERSION_NOT_SUPPORTED

505

HTTP Version Not Supported

Serwer nie obsługuje wersji protokołu HTTP wykorzystanej w żądaniu. Główna część odpowiedzi powinna określać protokoły obsługiwane przez serwer. Zwykłe serwlety nie powinny być zmuszone do korzystania z tego kodu stanu.

1.1

2 Część I Podstawy obsługi systemu WhizBang (Nagłówek strony)

2 C:\0-praca\Java Servlet - programowanie. Wyd. 2\rD-04.doc



Wyszukiwarka

Podobne podstrony:
r12-05, Programowanie, ! Java, Java Server Programming
r20-05, Programowanie, ! Java, Java Server Programming
O Autorach-05, Programowanie, ! Java, Java Server Programming
r05-05, Programowanie, ! Java, Java Server Programming
r07-05, Programowanie, ! Java, Java Server Programming
r03-05, Programowanie, ! Java, Java Server Programming
rE-05, Programowanie, ! Java, Java Server Programming
r19-05, Programowanie, ! Java, Java Server Programming
r17-05, Programowanie, ! Java, Java Server Programming
r11-05, Programowanie, ! Java, Java Server Programming
rF-05, Programowanie, ! Java, Java Server Programming
r04-05, Programowanie, ! Java, Java Server Programming
r13-05, Programowanie, ! Java, Java Server Programming
r01-05, Programowanie, ! Java, Java Server Programming
r10-05, Programowanie, ! Java, Java Server Programming
r02-05, Programowanie, ! Java, Java Server Programming
rB-05, Programowanie, ! Java, Java Server Programming
r12-05, Programowanie, ! Java, Java Server Programming
05 Programowanie

więcej podobnych podstron