English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Коды состояния HTTP JSP

Формат HTTP-запроса и HTTP-ответа相近, они имеют такую структуру:

  • Начинается с строки состояния + CRLF (возврат каретки и нового строки)

  • Ноль строк или несколько строк модулей заголовков + CRLF

  • Одна пустая строка, например CRLF

  • Опциональное сообщение тела, например файл, данные запроса, результат запроса

Например, заголовок ответа сервера может выглядеть так:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
!doctype ...
<html>
<head>...</head>
<body>
...
</body>
</html>

Строка состояния содержит версию HTTP, код состояния и короткое сообщение, соответствующее коду состояния.

В таблице ниже перечислены возможные HTTP-коды состояния, возвращаемые сервером, и связанные с ними сообщения:

Код состоянияСообщениеОписание
100 Continue Только часть запроса принята сервером, но если запрос не был отклонен сервером, клиент продолжит этот запрос
101 Switching Protocols Протокол серверного коммутатора
200 OK Запрос подтвержден
201 Created Запрос был полным, новый ресурс был создан
202 Accepted Запрос принят, но не обработан до конца
203 Non-authoritative Information  
204 No Content  
205 Reset Content  
206 Partial Content  
300 Multiple Choices Таблица ссылок, из которой пользователь может выбрать ссылку и перейти по ней, максимальная поддержка 5 ссылок
301 Moved Permanently Запрашиваемая страница уже перемещена на новый URL
302 Found Запрашиваемая страница временно перемещена на новый URL
303 See Other Запрашиваемая страница доступна по другому URL
304 Not Modified  
305 Use Proxy  
306Unused Этот код состояния больше не используется, но код состояния сохранен
307 Temporary Redirect Запрашиваемая страница временно перемещена на новый URL
400 Bad Request Сервер не может распознать запрос
401 Unauthorized Запрашиваемая страница требует имени пользователя и пароля
402 Требуется оплатаВ настоящее время этот код состояния еще не используется
403 Forbidden Доступ к запрашиваемой странице запрещен
404 Not Found Сервер не может найти запрашиваемую страницу
405 Method Not Allowed Запрашиваемый метод не разрешен
406 Not Acceptable Сервер может создать только один ответ, который клиент не принимает
407 Proxy Authentication Required Прежде чем обслужить запрос, необходимо аутентифицировать сервер-посредник
408 Request Timeout Время запроса превышает время ожидания сервера, соединение разорвано
409 Conflict Запрос содержит противоречия
410 Gone Запрашиваемая страница больше не доступна
411 Length Required "Content-Length" не определено, запрос отклоняется
412 Precondition Failed Предположение проверено сервером как false
413 Request Entity Too Large Запрос отклоняется, так как объект запроса слишком велик
414 Request-url Too Long Запрос отклоняется, так как URL слишком длинный. Часто встречается при преобразовании "POST" запроса в "GET" запрос с большим количеством информации в приложенных запросах
415 Unsupported Media Type Сервер отказывается принимать запрос, так как не поддерживается тип媒体的
417 Expectation Failed  
500 Internal Server Error Запрос неполный, сервер встретил неожиданную ситуацию
501 Not Implemented Запрос неполный, сервер не предоставляет необходимые функции
502 Bad Gateway Запрос неполный, сервер получил от上游 сервера недействительный ответ
503 Service Unavailable Запрос неполный, сервер временно перезапустился или закрылся
504 Gateway Timeout Gateway Timeout
505 HTTP Version Not Supported Сервер не поддерживает указанную версию HTTP

Методы для установки кода состояния HTTP

В таблице ниже перечислены методы класса HttpServletResponse, используемые для установки кода состояния:

S.N.Метод & Описание
1public void setStatus (int statusCode) Этот метод может установить любой код состояния. Если ваш ответ содержит особый код состояния и документ, убедитесь, что вы вызвали метод setStatus перед тем, как вернуться к любому содержимому с помощью PrintWriter
2public void sendRedirect(String url) Этот метод генерирует ответ 302, а также Location Заголовок информирует URL о новом документе
3public void sendError(int code, String message) Этот метод вставляет состояние кода (обычно 404) и короткое сообщение в документ HTML и автоматически отправляет его клиенту

Пример программы состояния HTTP

Следующий пример отправит код ошибки 407 браузеру, после чего браузер сообщит вам "Need authentication!!!".

<html>
<head>
<title>Настройка кода состояния HTTP</title>
</head>
<body>
<%
   // Установить код ошибки и объяснить причину
   response.sendError(407, "Need authentication!!!");
%>
</body>
</html>

При посещении вышеуказанной страницы JSP вы получите следующие результаты:

Вы также можете попробовать использовать другие коды состояния, чтобы увидеть, получите ли вы что-то неожиданное.