Когда клиент вызывает мою службу REST-ful, он должен знать, вернулся ли ответ, был "от меня" или, скорее, диагноз с содержащего веб-сервера, что произошло что-то ужасное.
Одна из теорий заключается в том, что, если мой код вызывается, он должен всегда возвращать HTTP OK (= 200), и любые ошибки, которые мне нужно вернуть, должны быть представлены только в возвращаемых данных. В конце концов, это мой код, который получает ответ, а не голый браузер.
Несколько очевидным образом, если я использую REST для генерации HTML-кода, читаемого напрямую браузером, я обязательно должен вернуть код ошибки, если есть ошибка. В случае, о котором я забочусь, это всегда Javascript или Java, которые интерпретируют внутренности ответа.
Другая возможность заключается в том, что существует некоторое семейство кодов состояния HTTP, с которыми я мог бы вернуться с высокой уверенностью в том, что они/они никогда не будут генерироваться проблемой в окружающем контейнере. Это тот случай?