E ai Pedro, beleza?
Primeiro devemos considerar que todos os status code são originados do servidor (web, aplicação), certo? As mensagens nunca são geradas pelo próprio cliente.
Referente ao erro que você mencionou, o 405 (Method Not Allowed), é geralmente enviado do servidor para o client quando, o client solicita informações de um formato que o servidor não está pronto para responder, por exemplo:
Se você fizer uma requisição no client, utilizando o header Accept como application/xml e o servidor estiver preparado apenas para responder a requisição como application/json, logo, obterá o código de erro 405 (Method Not Allowed).
É sempre interessante mapear os erros e tratá-los de acordo com o originador do problema, então:
2XX - Mensagens de sucesso no processamento
- 200 - OK
- 201 - Created
- 202 - Accepted
- 204 - No Content
3XX - Mensagens de ação que o client precisa tomar
- 300 - Multiple Choices
- 301 - Moved Permanently
- 302 - Found
- 303 - See Other
4XX - Mensagens de falhas originadas pelo Client
- 400 - Bad Request
- 401 - Unauthorized
- 403 - Forbidden
- 404 - Not Found
5XX - Mensagens de falhas originadas pelo Server
- 500 - Internal Server Error
- 501 - Not Implemented
- 502 - Bad Gateway
- 503 - Service Unavailable