2009-09-01 36 views
31

¿Qué código de estado HTTP debo devolver cuando un cliente envía datos incorrectos (por ejemplo, una cadena cuando se esperaba un número entero)?Código de estado HTTP para datos incorrectos

He estado usando 400 Bad Request, pero a medida que leo los documentos HTTP parece más aplicable a los errores del protocolo HTTP.

Me gustaría utilizar un código de estado para que los clientes de Flash y AJAX puedan distinguir entre el éxito, los datos incorrectos y el error del servidor sin tener que analizar una respuesta.

Respuesta

46

Esto es exactamente para lo que 400 es. Sí, se usa para mal uso del protocolo HTTP, pero no es exclusivamente para ese propósito.

+1

Según la pregunta del OP, ¿qué pasa si el cliente emite una solicitud HTTP con un 'entero ', como se esperaba. Sin embargo, digamos que ese entero representa el 'id' del usuario. Si el servidor no puede encontrar a ese usuario, ¿debería devolverse también un '400'? –

+7

En 404 sería lo mejor en esa instancia @KevinMeredith – DasDave

5

Realmente estaría más inclinado a atrapar los datos incorrectos en el navegador cuando el cliente presione el botón de enviar.

Si no, entonces me gustaría volver porque 400 como el estándar dice:

La solicitud no puede ser entendida por el servidor debido a la sintaxis incorrecta. El cliente NO DEBE repetir la solicitud sin modificaciones.

+3

Probablemente debería hacer ambas cosas. No hay garantías de que su API esté siendo utilizada por un navegador. :) – weberc2

Cuestiones relacionadas