Uso adequado de códigos de erro HTTP. 550 - Por que é 5xx em vez de 4xx?

Hoje, um colaborador usou um erro 550 em uma ação de exclusão quando o usuário não tem permissão que, a princípio, pareceu ruim para mim porque, como eu sei, esse tipo de erro parece um erro de cliente (aka 4xx) para mim e não um servidor (aka 5xx).

Ao olhar para a descrição, sugere exatamente que ela foi usada corretamente. Em vez de um erro 401, que eu estava usando com alguns "problemas" antes.

O problema do erro 401 é: Se o usuário A estiver conectado e tentar executar uma ação que retorne um 401, ele poderá sugerir que você deve 'fazer login', já que não possui credenciais válidas para acessar esse recurso http. Problema com esta abordagem é que se o usuário está logado, o servidor sabe que ele não tem a permissão, neste caso, parece um 550, é mais apropriado, mas não parece muito para mim que um erro 550 deve ser usado neste cenário.

A pergunta é: Qual é o uso adequado (se houver) do erro 550, em aplicativos baseados na web. Eu entendo que é uso em FTP e uso de retransmissão SMTP. Se algum usuário logado, envia uma solicitação de uma ação que não é permitida, qual erro deve ser retornado?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion