HTTP статус-код и пояснение к нему

Элемент Статус-Код представляет собой 3-х цифровой целый код, идентифицирующий результат попытки интерпретации и удовлетворения запроса. Фраза-Объяснение, следующая за ним, предназначена для краткого текстового описания Статус-Кода. Статус-Код нацелен на то, чтобы его использовала машина, а Фраза-Объяснение предназначена для человека. Клиент не обязан исследовать и выводить на экран Фразу-Объяснение.

Первая цифра Статус-Кода предназначена для определения класса ответа. Последние две цифры не выполняют никакой категоризирующей роли. Существует 5 значений для первой цифры:

1xx: Информационный - Не используется, но зарезервирован для использования в будущем

2xх: Успех - Запрос был полностью получен, понят, и принят к обработке.

3xx: Перенаправление - Клиенту следует предпринять дальнейшие действия для успешного выполнения запроса. Необходимое дополнительное действие иногда может быть выполнено клиентом без взаимодействия с пользователем, но настоятельно рекомендуется, чтобы это имело место только в тех случаях, когда метод, использующийся в запросе безразличен (GET или HEAD).

4xx: Ошибка клиента - Запрос, содержащий неправильные синтаксические конструкции, не может быть успешно выполнен. Класс 4xx предназначен для описания тех случаев, когда ошибка была допущена со стороны клиента. Если клиент еще не завершил запрос, когда он получил ответ с Кодом-Статуса 4xx, он должен немедленно прекратить передачу данных серверу. Данный тип Кодов-Статуса применим для любых методов, употребляющихся в запросе.

5xx: Ошибка Сервера - Сервер не смог дать ответ на корректно поставленный запрос. В этих случаях
сервер либо знает, что он допустил ошибку, либо не способен обработать запрос. За исключением ответов на запросы HEAD, сервер посылает описание ошибочной ситуации и то, является ли это состояние временным или постоянным, в Содержании-Ответа. Данный тип Кодов-Статуса применим для любых методов, употребляющихся в запросе.
Отдельные значения Кодов-Статуса и соответствующие им Фразы-Объяснения приведены ниже. Данные Фразы-Объяснения только рекомендуются - они могут быть замещены любыми другими фразами, сохраняющими смысл и допускающимися протоколом.

Код-Статуса =
"200" ; OK |
"201" ; Created |
"202" ; Accepted |
"203" ; Provisional Information |
"204" ; No Content |

"300" ; Multiple Choices |
"301" ; Moved Permanently |
"302" ; Moved Temporarily |
"303" ; Method |
"304" ; Not Modified |

"400" ; Bad Request |
"401" ; Unauthorized |
"402" ; Payment Required |
"403" ; Forbidden |
"404" ; Not Found |
"405" ; Method Not Allowed |
"406" ; None Acceptable |
"407" ; Proxy Authentication Required |
"408" ; Request Timeout |
"409" ; Conflict |
"410" ; Gone |

"500" ; Internal Server Error |
"501" ; Not Implemented |
"502" ; Bad Gateway |
"503" ; Service Unavailable |
"504" ; Gateway Timeout |
Код-Рассширения

Код-Расширения = 3ЦИФРА
Фраза-Объяснение = строка *( SP строка )
От HTTP приложений не требуется понимание всех Кодов-Статуса, хотя такое понимание, очевидно, желательно. Тем не менее, от приложений требуется способность распознавания классов кодов статуса (идентифицирующихся первой цифрой) и отношение ко всем кодам статуса ответа, как если бы они были эквивалентны кодам статуса x00