Коды состояния HTTP, разделены на 5 категорий. Клиент может быть не знаком с тем или иным кодом ответа HTTP, однако он должен отреагировать согласно категории кода. Итак протокол HTTP поддерживает следующие коды статуса, разделенные по категориям:
1xx: Information - информационные
- 100 Continue - Продолжать.
- Сервер доволен данными в запросе клиента, можно продолжать передачу заголовков. Появился в протоколе версии HTTP/1.1.
- 101 Switching Protocols - Переключение протоколов.
- Сервер
предлагает выбрать другой протокол, более соответствующий данному
ресурсу. Протоколы предлагаемый сервером, указываются в строке
заголовка Update, если предложенный сервером протокол, устраивает
клиента, он высылает новый запрос с указанием нового протокола. Появился
в протоколе версии HTTP/1.1.
- 102 Processing - Обрабатывается.
- Используется в протоколе WebDAV, работающем поверх HTTP
протокола. Данный код статуса информирует клиента о том, что запрос
принят, но на его обработку может понадобится определенное время, что-бы
он ( клиент ), не сбрасывал соединение. Клиент в этом случае должен
обнулить таймер и ожидать следующей команды.
2xx: Success - Успешное завершение
- 200 OK - Хорошо.
- Запрос к ресурсу выполнен успешно.
Данные, запрошенные клиентом, находятся в заголовке и/или в теле
ответа. Появился в протоколе версии HTTP/1.0.
- 201 Created - Создано.
- Запрос выполнен успешно, новый ресурс создан. В ответе сервера, в заголовке Location,
указывается местоположение созданного ресурса. Кроме того, серверу
рекомендуется указывать характеристики созданного ресурса, в заголовке
ответа. Появился в протоколе версии HTTP/1.0.
- 202 Accepted - Принято.
- Запрос принят, но еще в обработке. Появился в протоколе версии HTTP/1.0.
- 203 Non-Authoritative Information - Информация из неавторитетного источника.
- Аналогично
коду 200, но в данном случае информация может быть неактуальной, так
как взята не из первоисточника. Появился в протоколе версии HTTP/1.1.
- 204 No Content - Отсутствует содержимое.
- Сервер успешно обработал запрос, но не вернул содержимого. Появился в протоколе версии HTTP/1.0.
- 205 Reset Content - Сбросить содержимое.
- Сервер
успешно обработал запрос, но не вернул содержимого. В отличии от кода
204, данный код, требует от клиента, сбросить представление документа.
Появился в протоколе версии HTTP/1.1.
- 206 Partial Content - Часть содержимого.
- Сервер
вернул результат запроса клиентом, части содержимого, с помощью
заголовка range. Используется для докачки файлов или для многопоточной
закачки. Появился в протоколе версии HTTP/1.1.
- 207 Multi-Status - Многостатусный.
- Возвращаемое
сервером тело сообщения, представляет из себя XML документ со
статусами выполнения нескольких подзапросов. Используется в протоколе WebDAV.
- 226 IM Used - Использовано IM
- Расширение HTTP для поддержки "дельта кодирования" ( delta encoding ). Заголовок A-IM принят, данные возвращаются согласно установленным параметрам.
3xx: Redirection - Редирект ( перенаправление )
Коды данной категории, сообщают клиенту, что для завершения запроса,
ему необходимо выполнить дополнительный запрос, как правило по другому URI, соответствующий адрес указывается в строке Location,
ответа сервера. Программа - клиент может совершать дополнительные
запросы без участия пользователя, при условии что дополнительный запрос
делается методами GET или HEAD.
Некоторые клиенты некорректно работают с редиректами 301 и 302, применяя в запросе ко второму ресурсу метод GET, несмотря на то, что первый запрос был сделан с использованием другого метода. В протоколе HTTP версии 1.1, вместо ответа статуса 302, были введены дополнительные коды ответов, 303 и 307. Изменять метод, необходимо только в случает ответа сервера со статусом 303, в остальных случаях использовать исходный метод.
- 300 Multiple Choices - Несколько вариантов выбора.
- По запрошенному URI, существует несколько вариантов ресурса, различных по MIME
типу. языку или другим признакам. В ответе сервера, передается список
альтернатив, выбираемый клиентским приложением автоматически или самим
пользователем. Появился в протоколе версии HTTP/1.0.
- 301 Moved Permanently - Перемещёно окончательно.
- Запрошенный ресурс был окончательно перемещен на URI, указанный в строке заголовка Location, ответа сервера. Некоторые клиенты, при обработке данного кода, ведут себя некорректно, см. выше. Появился в протоколе версии HTTP/1.0.
- 302 Found - Найдено ( Moved Temporarily )
- Данный код статуса сообщает клиенту, что ресурс временно доступен по другому URI, указанному в строке заголовка Location, заголовка ответа сервера. Данный код используется например, при согласовании содержимого ( Content Negotiation ), выполняемого сервером. Появился в протоколе версии HTTP/1.0.
- 303 See Other - Смотреть другое.
- Документ из запрошенного URI, нужно запросить по адресу, указанному в строке заголовка Location, заголовка ответа сервера, используя метод GET, невзирая на то, каким методом был сделан первый запрос. Появился в протоколе версии HTTP/1.1.
- 304 Not Modified - Не изменялось.
- Данный код выдается в случае запроса документа, методом GET, с использованием заголовков If-Modified-Since или If-None-Match, и документ не был изменен с указанного момента времени. Появился в протоколе версии HTTP/1.0.
- 305 Use Proxy - Использовать прокси сервер.
- Запрос к ресурсу, должен выполняться через прокси-сервер., адрес которого, указан в строке заголовка Location, заголовка ответа сервера. Появился в протоколе версии HTTP/1.1.
- 307 Temporary Redirect - Временное перенаправление
- Запрошенный ресурс временно доступен по URI, указанному в строке заголовка Location, заголовка ответа сервера. Появился в протоколе версии HTTP/1.1.
4xx: Client Error - Ошибка клиента
Коды данной категории служат для указание на ошибку со стороны клиента. При использовании любых методов запроса, кроме HEAD, сервера возвращает пользователю гипертекстовое пояснение по данной ошибке.
- 400 Bad Request - Плохой запрос.
- Из-за синтаксической ошибки, запрос не был понят сервером. Появился в протоколе версии HTTP/1.0.
- 401 Unauthorized - Не авторизован.
- Ресурс
требует идентификации пользователя. Клиентское приложение запрашивает у
пользователя данные для аутентификации ( имя, пароль ) и передает их
на сервер в заголовке WWW-Authenticate. Если данные указаны не правильно, будет снова выдан этот-же код статуса. Появился в протоколе версии HTTP/1.0.
- 402 Payment Required - Необходима оплата.
- Пока не используется. Появился в протоколе версии HTTP/1.1.
- 403 Forbidden - Запрещено.
- Сервер
отказал в доступе к запрошенному ресурсу ввиду ограничений.
Ограничения могут быть любыми, установленными администратором сервера,
или определенным веб приложением. Например, в целях безопасности, закрыт
доступ к файлу, .htacces или .htpasswd или к
закрытой директории сайта, или в случае, когда аутентификация должна
производится через веб приложение ( например сайтовый движок ), ну или
блокировка по IP адресу, в случае слишком частых обращений. Появился в
протоколе версии HTTP/1.0.
- 404 Not Found - Не найдено.
- Сервер
не нашел запрошенный ресурс по указанному адресу. Кроме того данный
код ответа можно использовать вместо 403, с целью, скрыть расположение
документа, доступ к которому запрещен. Появился в протоколе версии HTTP/1.0.
- 405 Method Not Allowed - Метод не поддерживается.
- Клиент попытался использовать метод, недопустимый для данного ресурса. Сервер передает в заголовке, строку Allow, содержащую список допустимых методов. Появился в протоколе версии HTTP/1.1.
- 406 Not Acceptable - Не приемлемо.
- Запрошенный ресурс, не удовлетворяет, запрошенные характеристики. В случае, если запрос был сделан не методом HEAD, сервер вернет список допустимых характеристик запрошенного ресурса. Появился в протоколе версии HTTP/1.1.
- 407 Proxy Authentication Required - Необходима прокси авторизация.
- Данный
код статуса, аналогичен коду 401 за исключением того, что
аутентификация производится для прокси-сервера. Появился в протоколе
версии HTTP/1.1.
- 408 Request Timeout - Время ожидания истекло.
- Истек таймаут ожидания передачи данных, между сервером и клиентом. Появился в протоколе версии HTTP/1.1.
- 409 Conflict - Конфликт.
- Конфликтная
ситуация при обращении к ресурсу. Такое может произойти, например, при
попытке одновременного изменения файла, методом PUT, несколькими клиентами. Появился в протоколе версии HTTP/1.1.
- 410 Gone - Удалён.
- Данный ответ выдается в случае, если документ был по указанному URI, но в данный момент удален. Появился в протоколе версии HTTP/1.1.
- 411 Length Required - Необходима длина.
- Этот код статуса говорит о том, что для данного URI, в заголовке запроса, должно быть указано значение в поле Content-Length. Появился в протоколе версии HTTP/1.1.
- 412 Precondition Failed - Условие «ложно.
- Данный код выдается в случае, если ни одно из условных полей заголовка не было удовлетворено. Появился в протоколе версии HTTP/1.1.
- 413 Request Entity Too Large - Запрошены слишком большие данные.
- Данный
код выдается, если сервер по каким-либо причинам, не может передать,
требуемый объем данных. Если это временная проблема, сервер может
указать время, по истечении которого можно будет попробовать повторно
запросить ресурс, в строке заголовка, Retry-After. Появился в протоколе версии HTTP/1.1.
- 414 Request-URI Too Long - Запрашиваемый URI слишком длинный.
- Слишком длинная строка запроса. Такая ситуация может произойти, например в случае попытки, передать данные методом GET, вместо использования POST. Появился в протоколе версии HTTP/1.1.
- 415 Unsupported Media Type - Неподдерживаемый тип данных.
- Сервер, по какой-то причине, отказался обрабатывать запрошенные данные, используемым методом. Появился в протоколе версии HTTP/1.1.
- 416 Requested Range Not Satisfiable - Запрашиваемый диапазон не достижим.
- В строке заголовка запроса Range, установлен диапазон, выходящий за рамки запрошенного ресурса и отсутствует строка If-Range. Появился в протоколе версии HTTP/1.1.
- 417 Expectation Failed - Ожидаемое не приемлемо.
- Сервер не может обработать строку заголовка запроса Expect. Появился в протоколе версии HTTP/1.1.
- 422 Unprocessable Entity - Необрабатываемый экземпляр.
- Запрос принят, тип данных может быть обработан, синтаксис XML
данных в теле запроса верен, но имеет место логическая ошибка, не
позволяющая обработать запрос к ресурсу. Используется в протоколе WebDAV.
- 423 Locked - Заблокировано.
- Запрошенный ресурс заблокирован от данного метода. Используется в протоколе WebDAV.
- 424 Failed Dependency - Невыполненная зависимость.
- Выполнение
запроса, может зависеть от результата выполнения, какой-либо другой
операции, при невыполнении данного условия, будет выдан этот код
статуса. Используется в протоколе WebDAV.
- 425 Unordered Collection - Беспорядочный набор.
- Этот
код статуса будет выдан в случае, если клиент отправил запрос
обозначив положение в неотсортированной коллекции или используя порядок
следования элементов отличный от серверного. Введено в черновике по WebDAV Advanced Collections Protocol.
- 426 Upgrade Required - Требуется обновление.
- Указание сервера, клиенту, обновить протокол. Заголовок ответа, должен содержать правильно составленные поля Upgrade и Connection. Введено в RFC 2817 для возможности перехода к TLS посредством HTTP.
- 428 Precondition Required - Cерверу требуются условия для выполнения запроса.
- Это
типичная ситуация, когда клиент получает данные по GET, модифицирует
их и отправляет назад на сервер через PUT, но к тому времени они уже
были модифицированы другим клиентом, из-за чего возникает конфликт.
Требуя обусловленного запроса, сервер защищается от возникновения
конфликта. При этом обязательно должны быть указаны условия для
корректной отправки данных на сервер.
- 429 Too many requests - Слишком много запросов.
- Пользователь
отправил слишком много запросов в заданный период времени. Ответ
должен содержать объяснение нарушенного условия и может содержать
заголовок Retry-After с указанием времени, которое нужно подождать
перед повтором.
- 431 Request header fields too large - Один или несколько запросов превышают норму.
- Сервер
отказывает в обработке запроса из-за того, что один или несколько
заголовков в сумме превышают норму. Во втором случае в ответе должно
содержаться указание, какой именно заголовок вызвал проблему
- 449 Retry With - Повторить с...
- Выдается
в случае поступления не достаточного количества информации для
обработки запроса. В заголовок ответа сервера, помещается строка Ms-Echo-Request. Введено корпорацией Microsoft для WebDAV.
5xx: Server Error - Ошибка на стороне сервера
Коды данной категории, предназначены для ситуаций, когда обработка
запроса не возможна по вине сервера. Во всех случаях, кроме
использования метода HEAD, сервер должен включать в тело ответа, объяснение для пользователя.
- 500 Internal Server Error - Внутренняя ошибка сервера.
501 Not Implemented - Не реализовано. - Сервер
не поддерживает, необходимых для обработки запроса, возможностей. (
например не поддерживается необходимый метод обработки ). Появился в
протоколе версии HTTP/1.0.
- 502 Bad Gateway - Плохой шлюз.
- Сервер,
работающий в качестве прокси или шлюза, получил сообщение о неудачное в
промежуточной операции. Появился в протоколе версии HTTP/1.0.
- 503 Service Unavailable - Сервис недоступен.
- Сервер не в состоянии обрабатывать запросы клиентов по техническим причинам. Появился в протоколе версии HTTP/1.0.
- 504 Gateway Timeout - Истек таймаут ожидания ответа шлюза.
- Проксирующий
сервер или шлюз, не дождался ответа от вышестоящего сервера для
завершения обработки запроса. Появился в протоколе версии HTTP/1.0.
- 505 HTTP Version Not Supported - Версия HTTP протокола не поддерживается.
- Сервер не поддерживает, или не может обработать, указанную в заголовке версию HTTP протокола. Появился в протоколе версии HTTP/1.0.
- 506 Variant Also Negotiates - Вариант тоже согласован.
- Из-за не верной конфигурации, выбранный вариант указывает сам на себя, в следствии чего, связывание прерывается. Добавлено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation.
- 507 Insufficient Storage - Переполнение хранилища.
- Недостаточно места для обработки текущего запроса. Возможно временная проблема. Используется в протоколе WebDAV.
- 509 Bandwidth Limit Exceeded - Пропускная возможность канала исчерпана.
- Данный
код статуса, используется в случае превышения веб площадкой,
отведенного ей лимита, на потребляемый трафик. Данный код не описан ни
одним RFC и используется только модулем bw/limited, панели веб-хостинга cPanel.
- 510 Not Extended - Нет расширения.
- У
сервера отсутствует расширение, которое пытается использовать
клиентом. Сервер может передавать информацию, об имеющихся у него
расширениях. Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений.
- 511 Network authentication required - Необходимо выполнить аутентификацию.
- Необходимо
выполнить аутентификацию, при этом в ответе должна содержаться
инструкция о том, как это сделать, например, с помощью HTML-формы по
указанному адресу. Ошибку 511 возвращает не целевой сервер, а прокси,
который не пускает пользователя в сеть.
|