Códigos de estado adecuados para respuestas JSON a llamadas de Ajax?

Mi proyecto está devolviendo JSON a llamadas Ajax desde el navegador. Me pregunto cuál es el código de estado adecuado para enviar de vuelta con respuestas a envíos de datos no válidos (pero manejados con éxito).

Por ejemplo, jQuery tiene las siguientes dos devoluciones de llamada particulares al realizar solicitudes de Ajax:

success: Se dispara cuando se entrega un código de estado 200 / 2xx junto con la respuesta.

error: Se dispara cuando 4xx, 5xx, etc., los códigos de estado vuelven con la respuesta.

Si un usuario intenta crear un nuevo objeto "Persona", devuelvo una representación JSON del objeto recién creado al tener éxito, lo que le da acceso a JavaScript a los ID únicos necesarios para el nuevo objeto, etc. Esto, por supuesto, es enviado con un código de estado 200.

Si un usuario envía datos mal formados o no válidos (por ejemplo, un campo "nombre" no válido / incompleto), me gustaría enviar los mensajes de error de validación a través de JSON. (No veo por qué esto sería algo malo).

Mi pregunta es al hacerlo, ¿debo enviar un 200 código de estado, porque manejé con éxito sus datos no válidos? Por lo tanto, estaría usando jQuerysuccess devolución de llamada, pero simplemente verifique si hay errores ...

, ¿debería usar una 4xx código de estado, tal vez 'Solicitud incorrecta', porque los datos que me enviaron no son válidos. (y por lo tanto, use laerror callback para hacer las notificaciones necesarias del lado del cliente).

Respuestas a la pregunta(2)

Su respuesta a la pregunta