спецификация HTTP/1.1 (RFC 2616) имеет следующие значения: status code 400, Bad Запрос (§10.4.1):
Запрос не мог быть понят сервер из-за неправильного синтаксиса. Клиент НЕ ДОЛЖЕН повторять запросить без изменений.
В наши дни, похоже, существует общая практика среди нескольких API-интерфейсов на основе HTTP, чтобы использовать 400 для обозначения логической, а не синтаксической ошибки с запросом. Я предполагаю, что API делают это, чтобы различать 400 (клиентский) и 500 (сервер- индуцированный). Допустимо или неверно использовать 400 для обозначения несинтаксических ошибок? Если это приемлемо, есть аннотированная ссылка на RFC 2616, которая обеспечивает более глубокое понимание предполагаемого использования 400?
Примеры: