====== Список кодов состояния 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|Источник]]