Ответ 1
Из Википедия Список кодов состояния HTTP:
400 Плохой запрос:Запрос не может быть выполнен из-за плохого синтаксиса.
В этом случае ваш клиент отправил вам полезную нагрузку XML с недопустимым почтовым индексом, который является формой недопустимого синтаксиса; поэтому отправка 400 Bad Request - это соответствующий код ошибки для возврата в этой ситуации.
Кроме того, Wikipedia цитирует RFC-4918 как ресурс по этой теме. Из этого документа вы найдете следующую информацию:
Серверы МОГУТ отклонять сомнительные запросы (хотя они состоят из хорошо сформированного XML), например, с 400 (Bad Request) и дополнительный модуль ответа, объясняющий проблема.
Поскольку ваш запрос корректно сформирован (XML не плох, он просто содержит семантически некорректную информацию), вы можете отклонить контент с кодом состояния 400. Слово *may*
указывает на наличие других параметров.
В то время как у вас может возникнуть соблазн использовать код состояния 422, это будет неверно в этой ситуации, поскольку недопустимый почтовый индекс не соответствует критериям, чтобы быть семантической ошибкой. Читайте ниже...
Из Википедии:
422 Непроцессная организация (WebDAV; RFC 4918): Запрос был хорошо сформирован, но из-за семантических ошибок его не удалось выполнить.
Кроме того, вот некоторые определения чтобы помочь в интерпретации кода состояния 422:
Синтаксические ошибки возникают во время разбора входного кода и вызваны ошибочными по грамматике утверждениями. Типичные ошибки могут быть незаконным символом ввода, отсутствующим оператором, двумя операторами в строке, двумя операторами в одной строке без промежуточных точек с запятой, несбалансированными круглыми скобками, неправильным зарезервированным словом и т.д.
Семантические ошибки возникают во время выполнения кода после того, как он был проанализирован как грамматически правильный. Они должны делать не то, как построены утверждения, но и то, что они означают. Такие вещи, как неправильные типы или размеры переменных, несуществующие переменные, индексы вне диапазона и т.п., Являются семантическими ошибками.
Недопустимый почтовый индекс не является ни синтаксической ошибкой, ни семантической ошибкой; таким образом, разумно исключить код статуса 422 в качестве опции.
Чтобы ответить на ваш вопрос, код статуса 400 подходит; однако у вас могут быть и другие варианты.