====== Список кодов состояния 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.//
* **499**
//Используется Nginx, когда клиент закрывает соединение до получения ответа.//
====== 5xx: Server Error - Ошибка на стороне сервера ======
Коды данной категории, предназначены для ситуаций, когда обработка запроса не возможна по вине сервера. Во всех случаях, кроме использования метода HEAD, сервер должен включать в тело ответа, объяснение для пользователя.
* **500 Internal Server Error** - Внутренняя ошибка сервера.
//Любая внутренняя ошибка на стороне сервера не подпадающая под остальные ошибки из категории 5хх. Появился в протоколе версии HTTP/1.0.//
* **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 возвращает не целевой сервер, а прокси, который не пускает пользователя в сеть.//
----
[[https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP|Источник]]