Код ответа (состояния) HTTP

Код ответа показывает, был ли успешно выполнен определённый HTTP-запрос. Коды разделены на пять классов:

  • Информационные: 100–199,
  • Успешные: 200–299,
  • Перенаправления: 300–399,
  • Клиентские ошибки: 400–499,
  • Серверные ошибки: 500–599.

Данное перечисление содержит только часто используемые коды.

Подробнее:

Enumeration members

ACCEPTED

ACCEPTED: = 202

Принят

Запрос принят, но ещё не обработан.

Не поддерживается, т. е. нет способа с помощью HTTP позже отправить асинхронный ответ, который будет показывать итог обработки запроса. Код предназначен для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки.

BAD_GATEWAY

BAD_GATEWAY: = 502

Плохой шлюз

Эта ошибка означает, что во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, сервер получил недействительный (недопустимый) ответ.

BAD_REQUEST

BAD_REQUEST: = 400

Плохой запрос

Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса.

CONFLICT

CONFLICT: = 409

Конфликт

Этот ответ отсылается, когда выполнение запроса конфликтует с текущим состоянием сервера.

CONTINUE

CONTINUE: = 100

Продолжить

Этот промежуточный ответ указывает, что запрос успешно принят, и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён.

CREATED

CREATED: = 201

Создан

Запрос успешно выполнен, и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT.

EXPECTATION_FAILED

EXPECTATION_FAILED: = 417

Ожидание не может быть выполнено

Этот код ответа означает, что ожидание, полученное из заголовка запроса Expect, не может быть выполнено сервером.

FORBIDDEN

FORBIDDEN: = 403

Запрещён

У клиента нет прав доступа к содержимому, поэтому сервер отказывается удовлетворить запрос.

FOUND

FOUND: = 302

Найден

Этот код ответа означает, что запрошенный ресурс временно изменён. В будущем новые изменения могут быть доступны по данному URI. Таким образом, в последующих запросах клиент должен продолжать использовать этот URI.

GATEWAY_TIMEOUT

GATEWAY_TIMEOUT: = 504

Таймаут шлюза

Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.

GONE

GONE: = 410

Отсутствует

Этот ответ отсылается, когда запрашиваемый контент удалён с сервера.

HTTP_VERSION_NOT_SUPPORTED

HTTP_VERSION_NOT_SUPPORTED: = 505

HTTP-версия не поддерживается

HTTP-версия, используемая в запросе, не поддерживается сервером.

INTERNAL_SERVER_ERROR

INTERNAL_SERVER_ERROR: = 500

Внутренняя ошибка сервера

Сервер столкнулся с ситуацией, которую он не умеет обрабатывать.

I_AM_A_TEAPOT

I_AM_A_TEAPOT: = 418

I am a teapot

This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee. This HTTP status is used as an Easter egg in some websites, including Google.com.

LENGTH_REQUIRED

LENGTH_REQUIRED: = 411

Необходимо указать длину

Запрос отклонён, потому что сервер требует указание заголовка Content-Length, но он не указан.

METHOD_NOT_ALLOWED

METHOD_NOT_ALLOWED: = 405

Метод не разрешён

Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD, никогда не должны быть деактивированы и не должны возвращать этот код ошибки.

MOVED_PERMANENTLY

MOVED_PERMANENTLY: = 301

Перемещён на постоянной основе

Этот код ответа означает, что URI запрашиваемого ресурса был изменён. Возможно, новый URI будет предоставлен в ответе.

MULTIPLE_CHOICES

MULTIPLE_CHOICES: = 300

Множественный выбор

Этот код ответа присылается, когда запрос имеет более чем один возможный ответ, и агент пользователя или пользователь должен выбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов.

NON_AUTHORITATIVE_INFORMATION

NON_AUTHORITATIVE_INFORMATION: = 203

Информация не авторитетна

Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-либо другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK.

NOT_ACCEPTABLE

NOT_ACCEPTABLE: = 406

Неприемлемо

Этот ответ используется, когда веб-сервер после выполнения server-driven content negotiation не находит контента, отвечающего критериям, полученным от агента пользователя.

see

https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation#server-driven_content_negotiation

NOT_FOUND

NOT_FOUND: = 404

Не найден

Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверное, самый известный из-за частоты его появления в вебе.

NOT_IMPLEMENTED

NOT_IMPLEMENTED: = 501

Не реализовано

Метод запроса не поддерживается сервером и не может быть обработан. Если же метод серверу известен, но он неприменим к данному ресурсу, то должен вернуться ответ 405 Method Not Allowed.

NOT_MODIFIED

NOT_MODIFIED: = 304

Не модифицирован

Используется для кеширования. Это код ответа означает, что запрошенный ресурс не был изменён. Таким образом, клиент может продолжать использовать кешированную версию ответа.

NO_CONTENT

NO_CONTENT: = 204

Нет содержимого

Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков, полученных ранее для этого ресурса.

OK

OK: = 200

Успешно

Запрос успешно обработан. Что означает «успешно» зависит от метода HTTP, который был запрошен:

  • GET: Запрошенный ресурс был найден и передан в теле ответа.
  • HEAD: Заголовки переданы в ответе.
  • POST: Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.

PARTIAL_CONTENT

PARTIAL_CONTENT: = 206

Частичное содержимое

Этот код ответа используется, когда клиент присылает заголовок диапазона, чтобы выполнить загрузку раздельно, в несколько потоков.

PAYLOAD_TOO_LARGE

PAYLOAD_TOO_LARGE: = 413

Слишком большой запрос

Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After.

PAYMENT_REQUIRED

PAYMENT_REQUIRED: = 402

Необходима оплата

Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платёжных систем (на данный момент не используется).

Некоторые платформы используют этот код в программном API при превышении доступных лимитов.

PERMANENT_REDIRECT

PERMANENT_REDIRECT: = 308

Перенаправление на постоянной основе

Это означает, что ресурс теперь постоянно находится в другом URL, указанном в заголовке Location: HTTP Response.

Данный код ответа похож на 301 Moved Permanently, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен быть использован POST.

PRECONDITION_FAILED

PRECONDITION_FAILED: = 412

Предварительное условие не может быть выполнено

Клиент указал в своих заголовках условия, которые сервер не может выполнить.

PRECONDITION_REQUIRED

PRECONDITION_REQUIRED: = 428

Необходимо предварительное условие

Сервер указывает клиенту на необходимость использования в запросе заголовков условий, наподобие If-Match.

PROCESSING

PROCESSING: = 102

В обработке

Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка ещё не завершена.

PROXY_AUTHENTICATION_REQUIRED

PROXY_AUTHENTICATION_REQUIRED: = 407

Необходима аутентификация прокси-сервера

Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси-сервера.

RANGE_NOT_SATISFIABLE

RANGE_NOT_SATISFIABLE: = 416

Невозможно предоставить диапазон

Диапазон, указанный заголовком запроса Range, невозможно предоставить; возможно, он выходит за пределы переданного URI.

REQUEST_HEADER_FIELDS_TOO_LARGE

REQUEST_HEADER_FIELDS_TOO_LARGE: = 431

Превышена допустимая длина заголовков

Сервер не обязан отвечать этим кодом. Вместо этого он может просто сбросить соединение.

REQUEST_TIMEOUT

REQUEST_TIMEOUT: = 408

Таймаут соединения

Ответ с таким кодом может прийти даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соединение. Также учитывайте, что некоторые серверы прерывают соединение, не отправляя подобных сообщений.

RESET_CONTENT

RESET_CONTENT: = 205

Сбросить содержимое

Этот код присылается после успешной обработки запроса и сообщает клиенту, что необходимо сбросить отображение документа, присланного в ответ на запрос.

SEE_OTHER

SEE_OTHER: = 303

Просмотр других ресурсов

Этот код ответа присылается, чтобы направлять клиента с запросом GET для получения запрашиваемого ресурса в другой URI.

SERVICE_UNAVAILABLE

SERVICE_UNAVAILABLE: = 503

Обслуживание недоступно

Сервер не готов обработать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом следует отправлять удобную для пользователя страницу с объяснением проблемы.

Этот ответ должен использоваться для временных состояний. HTTP-заголовок Retry-After должен, если это возможно, содержать предполагаемое время до восстановления нормальной работы.

Веб-мастер также должен позаботиться о заголовках, связанных с кешированием, которые отправляются вместе с этим ответом. Такие ответы, указывающие на временное состояние сервера, обычно не должны кешироваться.

SWITCHING_PROTOCOLS

SWITCHING_PROTOCOLS: = 101

Переключение протокола

Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade:, и указывает, что сервер переключился на протокол, который был указан в заголовке.

Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется.

TEMPORARY_REDIRECT

TEMPORARY_REDIRECT: = 307

Временное перенаправление

Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос.

Данный код ответа похож на 302 Found, за исключением того, что в 307 Temporary Redirect агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен быть использован POST.

TOO_MANY_REQUESTS

TOO_MANY_REQUESTS: = 429

Слишком много запросов

Клиент попытался отправить слишком много запросов за короткое время, что может указывать, например, на попытку DDoS-атаки. Может сопровождаться заголовком Retry-After, указывающим, через какое время можно повторить запрос.

UNAUTHORIZED

UNAUTHORIZED: = 401

Не авторизован

Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна.

UNAVAILABLE_FOR_LEGAL_REASONS

UNAVAILABLE_FOR_LEGAL_REASONS: = 451

Недоступно по закону

Доступ к ресурсу закрыт по юридическим причинам, например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав.

Код ошибки является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту».

UNSUPPORTED_MEDIA_TYPE

UNSUPPORTED_MEDIA_TYPE: = 415

Неподдерживаемый тип данных

Формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонён.

URI_TOO_LONG

URI_TOO_LONG: = 414

Слишком длинный URI

URI, запрашиваемый клиентом, слишком длинный для того, чтобы сервер смог его обработать.