Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:
· Версия_протокола задается в том же формате, что и в запросе клиента, и имеет тот же смысл.
· Код_ответа - это трехзначное десятичное число, представляющее в закодированном виде результат обслуживания запроса сервером.
· Пояснительное_сообщение дублирует код ответа в символьном виде. Это строка символов, которая не обрабатывается клиентом. Она предназначена для системного администратора или оператора, занимающегося обслуживанием системы, и является расшифровкой кода ответа.
Из трех цифр, составляющих код ответа, первая (старшая) определяет класс ответа, остальные две представляют собой номер ответа внутри класса.
В используемых в настоящее время реализациях протокола HTTP первая цифра не может быть больше 5 и определяет следующие классы ответов.
· 1 - специальный класс сообщений, называемых информационными. Код ответа, начинающийся с 1, означает, что сервер продолжает обработку запроса. При обмене данными между HTTP-клиентом и HTTP-сервером сообщения этого класса используются достаточно редко.
· 2 - успешная обработка запроса клиента.
· 3 - перенаправление запроса. Чтобы запрос был обслужен, необходимо предпринять дополнительные действия.
· 4 - ошибка клиента. Как правило, код ответа, начинающийся с цифры 4, возвращается в том случае, если в запросе клиента встретилась синтаксическая ошибка.
· 5 - ошибка сервера. По тем или иным причинам сервер не в состоянии выполнить запрос.
Примеры кодов ответов, которые клиент может получить от сервера, и поясняющие сообщения приведены в таблице 2.
Таблица 2.2. Классы кодов ответа сервера
Код
| Расшифровка
| Интерпретация
|
| Continue
| Часть запроса принята, и сервер ожидает от клиента продолжения запроса
|
| OK
| Запрос успешно обработан, и в ответе клиента передаются данные, указанные в запросе
|
| Created
| В результате обработки запроса был создан новый ресурс
|
| Accepted
| Запрос принят сервером, но обработка его не окончена. Данный код ответа не гарантирует, что запрос будет обработан без ошибок.
|
| Partial Content
| Сервер возвращает часть ресурса в ответ на запрос, содержавший поле заголовка Range
|
| Multiple Choice
| Запрос указывает более чем на один ресурс. В теле ответа могут содержаться указания на то, как правильно идентифицировать запрашиваемый ресурс
|
| Moved Permanently
| Затребованный ресурс больше не располагается на сервере
|
| Moved Temporarily
| Затребованный ресурс временно изменил свой адрес
|
| Bad Request
| В запросе клиента обнаружена синтаксическая ошибка
|
| Forbidden
| Имеющийся на сервере ресурс недоступен для данного пользователя
|
| Not Found
| Ресурс, указанный клиентом, на сервере отсутствует
|
| Method Not Allowed
| Сервер не поддерживает метод, указанный в запросе
|
| Internal Server Error
| Один из компонентов сервера работает некорректно
|
| Not Implemented
| Функциональных возможностей сервера недостаточно, чтобы выполнить запрос клиента
|
| Service Unavailable
| Служба временно недоступна
|
| HTTP Version not Supported
| Версия HTTP, указанная в запросе, не поддерживается сервером
|