417 Expectation Failed ("ожидание не оправдалось")

https://httpcat.ru/417
Это прямая ссылка на изображение со статусом. Вы можете скопировать и использовать её где угодно.
HTTP статус 417 — ожидание не оправдалось

Описание

Код состояния 417 Expectation Failed означает, что сервер не может удовлетворить условия, указанные в заголовке Expect запроса. Чаще всего это Expect: 100-continue.

Основные характеристики:

  • Используется, если сервер не поддерживает или отказывается выполнять указанные клиентом ожидания
  • Наиболее частый случай — отказ от обработки Expect: 100-continue, применяемого при отправке больших тел запроса
  • Сервер может использовать 417 для защиты от нежелательной загрузки (например, фильтровать слишком большие запросы заранее)

Типичное использование:

POST /upload HTTP/1.1
Host: example.com
Content-Length: 52428800
Expect: 100-continue

HTTP/1.1 417 Expectation Failed
Content-Type: application/json

{
    "error": "Server does not support Expect: 100-continue"
}

Особенности заголовков:

  • Expect — в запросе, указывает ожидание клиента (обычно 100-continue)
  • Content-Length — показывает, что клиент намерен отправить тело, если сервер подтвердит готовность

Когда использовать:

  1. Если сервер не поддерживает или не хочет обрабатывать Expect: 100-continue
  2. Для фильтрации запроса до получения тела (например, по размеру, авторизации и т.д.)
  3. При реализации промежуточных серверов (прокси), которые не поддерживают forwarded expectations

Дополнительно:

  • Если ожидания могут быть выполнены, сервер должен ответить 100 Continue, а затем обработать тело запроса
  • В реальных API 417 встречается редко, но может быть полезен для отказа от "дорогих" или неподдерживаемых ожиданий
  • Отличие от 400: 417 связан **не с ошибкой запроса**, а с невозможностью выполнить ожидаемое поведение

Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/417


Похожие статусы

HTTP статус 400 — неправильный, некорректный запрос
400
неправильный, некорректный запрос

↑ Наверх