Правильное использование кодов ошибок HTTP. 550 - Почему это 5xx вместо 4xx?

Сегодня совместная работа использовала ошибку 550 в действии удаления, когда у пользователя нет разрешения, которое поначалу показалось мне плохим, потому что, как мне известно, эта ошибка мне напоминает ошибку клиента (aka 4xx) а не сервер (он же 5xx).

Глядя на описание, оно подсказывает, что оно использовалось правильно. Вместо ошибки 401, которую я использовал с некоторыми «проблемами» раньше.

Проблема с ошибкой 401: если пользователь A вошел в систему и попытался выполнить действие, которое возвращает 401, он может предложить вам войти в систему, поскольку у вас нет действительных учетных данных для доступа к этому ресурсу http. Проблема с этим подходом состоит в том, что, если пользователь вошел в систему, сервер знает, что у него нет разрешения, в данном случае выглядит как 550, это более уместно, но мне не кажется, что ошибка 550 должна использоваться в этом сценарий.

Вопрос в том, как правильно (если есть) использовать ошибку 550 в веб-приложениях. Я понимаю, что это используется в FTP и SMTP ретрансляции. Если какой-то пользователь вошел в систему, отправляет запрос о недопустимом действии, какая ошибка должна быть возвращена?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос