Status-Code это код результата
(Chapter 6.1. 1 Status Code and Reason Phrase from )
,
Status-Code это код результата попытки понять и выполнить запрос. Состоит из трех цифр. Полные определения значений Status-Code приведены в главе 10. Reason-Phrase - короткое текстовое описание Status-Code. Status-Code предназначен для программ, Reason-Phrase - для человека.
Первая цифра Status-Code определяет класс кода. Две следующие цифры никак не категоризируются. Существует пять классов кодов:
1xx: Информационные - Запрос принят, продолжение процесса
2xx: Коды успеха - Запрос был успешно принят, распознан и выполнен
3xx: Редирект - Дальнейшее действие должно быть перенаправлено для завершения запроса
4xx: Ошибка клиента - Неверный синтаксис запроса или недостаточно клиентских данных для выполнения запроса
5xx: Ошибка сервера - Невозможность выполнить полностью появившийся запрос
Ниже представлена таблица возможных значений Status-Code и соответствующих им значений Reason-Phrase для HTTP/1.1.
Continue (продолжение) |
Switching Protocols (переключение протоколов) |
OK (ну, тут понятно) |
Created (создано) |
Accepted (принято) |
Non-Authoritative Information (неавторизованная информация) |
No Content (нет содержимого) |
Reset Content (обновить содержимое) |
Partial Content (часть содержимого) |
Multiple Choices (возможность выбора) |
Moved Permanently (удалено) |
Moved Temporarily (временно удалено) |
See Other (смотри другое) |
Not Modified (не изменялось) |
Use Proxy (использовать прокси) |
Bad Request (неправильный запрос) |
Unauthorized (неавторизованный запрос) |
Payment Required (требуется заплатить) |
Forbidden (запрещено) |
Not Found (не найдено) |
Method Not Allowed (метод) |
Not Acceptable (не принято) |
Proxy Authentication Required (требуется аутентификация прокси) |
Request Time-out (тайм-аут запроса) |
Conflict (конфликт) |
Gone (пойди дальше) |
Length Required (требуется правильная длина message-body) |
Precondition Failed (нарушено согласование) |
Request Entity Too Large (поле Entity запроса слишком велико) |
Request-URI Too Large (поле URI запроса слишком велико) |
Unsupported Media Type (неподдерживаемый media-тип) |
Internal Server Error (внутренняя ошибка сервера) |
Not Implemented (невыполнимо) |
Bad Gateway (неправильный шлюз) |
Service Unavailable (недоступный сервис) |
Gateway Time-out (тайм-аут шлюза) |
HTTP Version not supported (неподдерживаемая версия HTTP) |
extension-code = 3 цифры
Reason-Phrase = *<текст, исключая символы CR, LF>
Status-Code расширяемы. От HTTP-приложений не требует обязательное понимание всех зарегистрированных Status-Code. Однако приложения ОБЯЗАНЫ понимать класс любого Status-Code (первая цифра) и если встречен непонятный Status-Code, то приложения должны отреагировать на такой код как на x00. К примеру, если принят нераспознаваемый код со значением 431 - приложение должно поступить как будто бы был принят код 400. В таких случаях приложениям СЛЕДУЕТ возвращать пользователю нераспознанный код, причем желательно в human-readable формате.