Коды ответов HTTP сервера
Содержание
Коды ответов HTTP сервера
rfc2616
В первой строке ответа HTTP-сервера содержится информация о том, был запрос клиента успешным или нет, а также данные о причинах успешного либо неуспешного завершения запроса. Эта информация обозначается трехразрядным кодом ответа сервера (иногда его называют кодом состояния) и сопровождается описательным сообщением.
Коды состояний обычно генерируются Web-серверами, но иногда это могут делать и CGI-сценарии, CGI-сценарии генерируют собственные заголовки вместо тех, которые должен выдавать сервер.
Коды состояний группируются следующим образом:
Диапазон кодов | Значение ответа | |
100-199 | Информационный | |
200-299 | Запрос клиента успешен | |
300-399 | Запрос клиента переадресован, необходимы дальнейшие действия | |
400-499 | Запрос клиента является неполным | |
500-599 | Ошибки сервера |
В HTTP в каждом диапазоне определены лишь несколько кодов, хотя для сервера при необходимости могут определяться собственные коды. Клиент при получении кода, который он не может распознать, интерпретирует его в соответствии с диапазоном, к которому этот код принадлежит. Коды в диапазонах 100-199, 200-299 и 300-399 большинство Web-броузеров обрабатывают без извещения пользователя, а некоторые коды ошибок из диапазонов 400-499 и 500-599 отображаются для пользователя (например, 404 Not Found).
Информационные ответы
Ответы в диапазоне 100-199 - информационные; они показывают, что запрос клиента принят и обрабатывается.
100 | Continue | Начальная часть запроса принята, и клиент может продолжать передачу запроса. | |
101 | Switching Protocols | Сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade. |
Успешные запросы клиента
Ответы в диапазоне 200-299 означают, что запрос клиента обработан успешно.
200 | OK | Запрос клиента обработан успешно, и ответ сервера содержит затребованные данные. | |
201 | Created | Этот код состояния используется в случае создания нового URI. Вместе с этим кодом результата сервер выдает заголовок Location, который содержит информацию о том, куда были помещены новые данные. | |
202 | Accepted | Запрос принят, но обрабатывается не сразу. В теле содержимого ответа сервера может быть дана дополнительная информация о данной транзакции. Гарантии того, что сервер в конечном итоге удовлетворит допустимым. | |
203 | Non-Authoritative Information | Информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера. | |
204 | No Content | Ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь щелкает на бесполезных или пустых участках изображения. | |
205 | Reset Content | Броузер должен очистить форму, используемую в данной транзакции, для дополнительных входных данных. Полезен для CGI-приложений, требующих ввода данных. | |
206 | Partial Content | Сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range. |
Переадресация
Код ответа в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.
300 | Multiple Choices | Затребованный URI обозначает более одного ресурса. Например, URI может обозначать документ, переведенный на несколько языков. В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно. | |
301 | Moved Permanently | Затребованный URI уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location. Во всех последующих запросах данного документа следует указывать новый URI. | |
302 | Moved Temporarily | Затребованный URI перемешен, но лишь временно. Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URI, но во всех последующих запросах необходимо пользоваться старым URI. | |
303 | See Other | Затребованный URI можно найти по другому URI (указанному в заголовке Location). Его следует выбрать методом GET по данному ресурсу. | |
304 | Not Modified | Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию. | |
305 | Use Proxy | Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location. |
Неполные запросы клиента
Коды ответов в диапазоне 400-499 означают, что запрос клиента неполный. Эти коды могут также означать, что от клиента требуется дополнительная информация.
400 | Bad Request | Означает, что сервер обнаружил в запросе клиента синтаксическую ошибку. | |
401 | Unauthorized | Этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий и что при повторении запроса с указанием данного URI пользователь должен такие полномочия предоставить. | |
402 | Payment Required | Этот код в HTTP еще не реализован. | |
403 | Forbidden | Запрос отклонен по той причине, что сервер не хочет (или не имеет возможности) ответить клиенту. | |
404 | Not Found | Документ по указанному URI не существует. | |
405 | Method Not Allowed | Этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом, для данного URI не поддерживается. | |
406 | Not Acceptable | Ресурс, указанный клиентом по данному URI, существует, но не в том формате, который нужен клиенту. Вместе с этим кодом сервер выдает заголовки Content-Language, Content-Encoding и Content-Type. | |
407 | Proxy Authentication Required | Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate. | |
408 | Request Time-out | Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который обычно задается в конфигурации сервера) и сервер разрывает сетевое соединение. | |
409 | Conflict | Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информацию о конфликте следует возвратить в информационной части ответа. | |
410 | Gone | Данный код показывает, что затребованный URI больше не существует и навсегда удален с сервера. | |
411 | Length Required | Сервер не примет запрос без указанного в нем заголовка Content-Length. | |
412 | Precondition Failed | Результат вычисления условия, заданного в запросе одним или несколькими заголовками if. . ., представляет собой "ложь". | |
413 | Request Entity Too Large | Сервер не будет обрабатывать запрос, потому что его тело слишком велико. | |
414 | Request-URI Too Long | Сервер не будет обрабатывать запрос, потому что его URI слишком длинный. | |
415 | Unsupported Media Type | Сервер не будет обрабатывать запрос, потому что его тело имеет неподдерживаемый формат. |
Ошибки сервера
Коды ответов в диапазоне 500-599 показывают, что сервер столкнулся с ошибкой и, вероятно, не сможет выполнить запрос клиента.
500 | Internal Server Error | При обработке запроса на сервере один из его компонентов (например, CGI-программа) выдал аварийный отказ или столкнулся с ошибкой конфигурации. | |
501 | Not Implemented | Клиент запросил выполнение действия, которое сервер выполнить не может. | |
502 | Bad Gateway | Сервер (или proxy-сервер) получил недопустимые ответы другого сервера (или proxy-сервера). | |
503 | Service Unavailable | Данный код означает, что данная служба временно недоступна, но в будущем доступ к ней будет восстановлен. Если сервер знает, когда это произойдет, может быть также выдан заголовок Retry-After. | |
504 | Gateway Time-out | Этот ответ похож на 408 (Request Time-out) , за исключением того, что шлюз или уполномоченный сервер превысил лимит времени. | |
505 | HTTP Version not supported | Сервер не поддерживает версию протокола HTTP, использованную в запросе. |