Если вы посмотрите на RFC 2616 , вы увидите несколько заголовков запроса, которые можно использовать для применения условий к запросу:
If-Match
If-Modified-Since
If-None-Match
If-Range
If-Unmodified-Since
Эти заголовки содержат «предварительные условия», позволяя клиенту сказать серверу завершить запрос только при соблюдении определенных условий.Например, вы используете запрос PUT
для обновления состояния ресурса, но вы хотите, чтобы действие PUT
действовало только в том случае, если ресурс не был изменен кем-то еще со времени вашего последнего GET
.
Код состояния ответа 412
(Precondition Failed) обычно используется при сбое этих предварительных условий.
Ваш пример звучит как недопустимый запрос (т. Е. Клиент представил данные, которые являются недопустимыми из-за пропущенных значений).Код состояния 400
(неправильный запрос) более уместен здесь, ИМО.