|
Status Code и Reason Phrase в протоколе HTTP/1.1
(Chapter 6.1.1 Status Code and Reason Phrase from RFC 2068)
Андрей Аликберов, Центр Информационных Технологий
Status-Code это код результата попытки понять и выполнить запрос. Состоит из трех цифр. Полные определения значений Status-Code приведены в главе 10. Reason-Phrase - короткое текстовое описание Status-Code. Status-Code предназначен для программ, Reason Reason— программа для создания и записи музыки (цифровая звуковая рабочая станция), разработанная шведской компанией Propellerhead Software. Эмулирует рэковую стойку с установленными в неё аналоговыми синтезаторами, сэмплерами, сигнальными процессорами, секвенсорами и микшерами. Может использоваться или как самостоятельная виртуальная студия звукозаписи, или как набор виртуальных музыкальных инструментов для живого выступления, или для записи при помощи внешних секвенсоров (c использованием технологии Rewire).-Phrase - для человека.
Первая цифра Status-Code определяет класс кода. Две следующие цифры никак не категоризируются. Существует пять классов кодов:
- 1xx: Информационные - Запрос принят, продолжение
Продолжение (англ.continuation) представляет состояние программы в определённый момент, которое может быть сохранено и использовано для перехода в это состояние. Продолжения содержат всю информацию, чтобы продолжить выполнения программы с определённой точки. Состояние глобальных переменных обычно не сохраняется, однако для функциональных языков это несущественно (выборочное сохранение/восстановление значений глобальных объектов в Scheme достигается отдельным механизмом dynamic-wind). Продолжения похожи на goto Бейсика или setjmp()/longjmp() Си, так как также позволяют перейти в любое место программы. Но продолжения, в отличие от goto, позволяют перейти только в участок программы с определённым состоянием, которое должно быть сохранено заранее, в то время, как goto позволяет перейти в участок программы с неинициализированными переменными. процесса
- 2xx: Коды успеха - Запрос был успешно принят, распознан и выполнен
- 3xx: Редирект - Дальнейшее действие должно быть перенаправлено для завершения запроса
- 4xx: Ошибка клиента - Неверный синтаксис запроса или недостаточно клиентских данных для выполнения запроса
- 5xx: Ошибка сервера - Невозможность выполнить полностью появившийся запрос
Ниже представлена таблица Таблица (из лат.tabula «доска»)— способ передачи содержания, заключающийся в организации структуры данных, в которой отдельные элементы помещены в ячейки, каждой из которых сопоставлена пара значений— номер строки и номер колонки. Таким образом, устанавливается смысловая связь между элементами, принадлежащими одному столбцу или одной строке. возможных значений 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
extension-code = 3 цифры
Reason-Phrase = *<текст, исключая символы CR, LF>
Status-Code расширяемы. От HTTP-приложений не требует обязательное понимание Понимание — психологическое состояние, верное восприятие или интерпретация какого-либо события, явления, факта, принятое в определенном кругу. всех зарегистрированных Status-Code. Однако приложения ОБЯЗАНЫ понимать класс любого Status-Code (первая цифра) и если встречен непонятный Status-Code, то приложения должны отреагировать на такой код как на x00. К примеру, если принят нераспознаваемый код со значением 431 - приложение должно поступить как будто бы был принят код 400. В таких случаях приложениям СЛЕДУЕТ возвращать пользователю нераспознанный код, причем желательно в human-readable формате.
|