+1 a Barts answer - por razones de seguridad. Por lo general, estoy de acuerdo con que 409 es un buen código de estado para sth. eso ya existe Pero en un entorno de cuentas de usuario/autenticación/autorización, etc., tendería a no exponer las cuentas de usuario existentes en su base de datos.
Por supuesto, hay otros mecanismos para manejar la seguridad en este lugar. Si no le importa exponer un pequeño número de sus cuentas, puede agregar un comportamiento a su aplicación que devuelva 401 o 403 en numerosos 409 eventos desde una IP.
Otra opción (en general) es definir un código de estado por su cuenta para tener un 2xx que difiere de las variantes estándar existentes 2xx. Esta podría ser una opción si no desea manejar un "ya existe" como un error. Sin embargo, esto sería considerado como no estándar y tendría el mismo carácter inseguro como un 409 en su ejemplo concreto.
No creo que sea una buena idea. Si la conexión se realiza a través de un proxy, los resultados pueden ser impredecibles. – Cheery
¡Creo que es una buena idea! Debido a que HTTP tiene código de estado, ¡úsalos! También es muy útil cuando tiene que depurar más tarde y solo tiene acceso a archivos u otros archivos de registro, pero si existe el código HTTP ... :) – powtac
'409 - Conflict' es una muy buena opción para este tipo de respuesta. –