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