Status-Code это код результата попытки понять и выполнить запрос. Состоит из трех цифр. Полные определения значений Status-Code приведены в главе 10. Reason-Phrase - короткое текстовое описание Status-Code. Status-Code предназначен для программ, Reason-Phrase - для человека.
Первая цифра Status-Code определяет класс кода. Две следующие цифры никак не категоризируются. Существует пять классов кодов:
Ниже представлена таблица возможных значений Status-Code и соответствующих им значений Reason-Phrase для HTTP/1.1.
Status-Code | Reason-Phrase |
---|---|
"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 (возможность выбора) |
"301" | Moved Permanently (удалено) |
"302" | Moved Temporarily (временно удалено) |
"303" | See Other (смотри другое) |
"304" | Not Modified (не изменялось) |
"305" | Use Proxy (использовать прокси) |
"400" | Bad Request (неправильный запрос) |
"401" | Unauthorized (неавторизованный запрос) |
"402" | Payment Required (требуется заплатить) |
"403" | Forbidden (запрещено) |
"404" | Not Found (не найдено) |
"405" | Method Not Allowed (метод) |
"406" | Not Acceptable (не принято) |
"407" | Proxy Authentication Required (требуется аутентификация прокси) |
"408" | Request Time-out (тайм-аут запроса) |
"409" | Conflict (конфликт) |
"410" | Gone (пойди дальше) |
"411" | Length Required (требуется правильная длина message-body) |
"412" | Precondition Failed (нарушено согласование) |
"413" | Request Entity Too Large (поле Entity запроса слишком велико) |
"414" | Request-URI Too Large (поле URI запроса слишком велико) |
"415" | Unsupported Media Type (неподдерживаемый media-тип) |
"500" | Internal Server Error (внутренняя ошибка сервера) |
"501" | Not Implemented (невыполнимо) |
"502" | Bad Gateway (неправильный шлюз) |
"503" | Service Unavailable (недоступный сервис) |
"504" | Gateway Time-out (тайм-аут шлюза) |
"505" | HTTP Version not supported (неподдерживаемая версия HTTP) |
extension-code
Reason-Phrase = *<текст, исключая символы CR, LF>
extension-code = 3 цифры
Status-Code расширяемы. От HTTP-приложений не требует обязательное понимание всех зарегистрированных Status-Code. Однако приложения ОБЯЗАНЫ понимать класс любого Status-Code (первая цифра) и если встречен непонятный Status-Code, то приложения должны отреагировать на такой код как на x00. К примеру, если принят нераспознаваемый код со значением 431 - приложение должно поступить как будто бы был принят код 400. В таких случаях приложениям СЛЕДУЕТ возвращать пользователю нераспознанный код, причем желательно в human-readable формате.