Очевидно, что запросы POST некоторых форм должны приводить к ошибке HTTP 4xx (например, неправильный URL-адрес, отсутствие ожидаемого поля, невозможность отправки файла cookie аутентификации), но существующие вопросы подобно этому, кажется, предполагает, что все недопустимые отправки форм следует рассматривать как ошибки HTTP 4xx . Действительно?
Ошибки при вводе пароля или случайное пропуск обязательных полей — чрезвычайно распространенное и предполагаемое явление в приложении. Из какой-либо спецификации не ясно, что это должно представлять собой «ошибку клиента HTTP» или что POST можно считать успешным 2xx только в том случае, если он приводит к постоянному изменению состояния.
Я предполагаю, что моя интуиция такова, что если сервер отправляет клиенту форму, а клиент быстро отвечает правильно сформированным POST-запросом к этой форме со всеми ожидаемыми полями, обычное нарушение бизнес-логики не должно быть ошибкой HTTP.
Ситуация еще менее определена, если форма отправляется через что-то вроде JSON-RPC. HTTP — это всего лишь транспортный механизм, и если функция успешно вызвана и ответ возвращен вызывающему объекту, не должно быть ошибки HTTP.
Реже некоторые формы могут выполнять несколько действий, и одна часть может быть успешной, а другая - нет.
В идеале IETF мог бы устранить это с помощью RFC, возможно, добавив код ошибки HTTP для «операция не была выполнена из-за сбоя аннулирования формы» или расширив определение 422.