En el caso de una API REST con una carga útil JSON, los 400 se utilizan normalmente, y correctamente diría yo, para indicar que el JSON no es válido de alguna manera según la especificación de la API para el servicio.
Imagina que en lugar de JSON se tratara de XML. En ambos casos, el XML nunca pasaría la validación del esquema, ya sea por un elemento indefinido o un valor de elemento inapropiado. Eso sería una mala petición. Lo mismo ocurre aquí.
En ninguno de los dos casos la “sintaxis está mal formada”. Es la semántica la que está mal. Por lo tanto, IMHO un 400 es inapropiado. En su lugar, sería apropiado devolver un 200 junto con algún tipo de objeto de error como {“error”: { “mensaje”: “Unknown request keyword” } } o lo que sea.
Considere la(s) ruta(s) de procesamiento del cliente. Un error en la sintaxis (por ejemplo, JSON inválido) es un error en la lógica del programa, en otras palabras, un error de algún tipo, y debe ser manejado en consecuencia, de una manera similar a un 403, digamos; en otras palabras, algo malo ha salido mal.
Un error en el valor de un parámetro, por otro lado, es un error semántico, quizás debido a una entrada de usuario mal validada. No es un error HTTP (aunque supongo que podría ser un 422). La ruta de procesamiento sería diferente.
A veces, al intentar acceder a una página web, su navegador puede devolver un código de error “400 Bad Request”, y es difícil saber cuál es el problema real. Los códigos de error HTTP 4.x.x son errores del lado del cliente, y los diferentes códigos indican la razón de la solicitud fallida. Aquí puede ver una explicación detallada de los distintos códigos de estado HTTP.
“400 Bad Request” es un error general que indica que su navegador envía una solicitud al servidor del sitio web y el servidor no puede procesar o reconocer la solicitud. El siguiente artículo explicará qué es el error “400 Bad Request”, las causas más comunes y cómo solucionarlo.
El código de estado de respuesta 400 Bad Request del Protocolo de Transferencia de Hipertexto (HTTP) indica que el servidor no puede o no quiere procesar la solicitud debido a algo que se percibe como un error del cliente (por ejemplo, una sintaxis de solicitud mal formada, un encuadre de mensaje de solicitud no válido o un enrutamiento de solicitud engañoso).
La página “400 Bad Request” puede mostrarse de forma diferente. Algunos navegadores pueden no mostrar el código de error y en su lugar mostrar una página en blanco. Además, es importante tener en cuenta que la página de este error puede estar personalizada en el servidor de alojamiento del sitio web. A continuación, puede ver un ejemplo de una página de error estándar “400 Bad Request NGINX”.
El error400, también conocido como “error HTTP 400” o “error 400 Bad Request” es un código de estado en el protocolo HTTP que significa que la petición enviada por el usuario al servidor es errónea o está corrupta y el servidor no puede procesarla
Como ya he explicado, cuando el navegador muestra el mensaje de error 400, significa que la petición que se intenta hacer desde el navegador es incorrecta, está corrupta o que el servidor no puede entenderla.
Si todo parece indicar que el navegador del cliente no es responsable de la aparición de los errores 400 que te encuentras, es posible que el error 400 sea el resultado de una cabecera HTTP faltante o no válida que tu servidor está esperando
Cuando usted envía una solicitud desde su navegador web, el servidor tiene que procesarla y enviarle una respuesta. Si esta respuesta es un mensaje de error 400 Bad Request, esto significaría que se ha producido un problema durante el procesamiento de la respuesta y el servidor no puede responder favorablemente a su solicitud
Un protocolo de transferencia de hipertexto Bad Request 400 indica un error del cliente. Cuando el cliente envía una solicitud no válida al servidor, éste emite un código de estado HTTP 400. Un elevado número de errores 400 puede afectar negativamente a la usabilidad de los sitios web, y suele estar causado por una URL mal introducida. [1]
El código de estado 400 (Bad Request) indica que el servidor no puede o no quiere procesar la solicitud debido a algo que se percibe como un error del cliente [2] En respuesta a una solicitud no válida, el servidor debería emitir el código 4xx exacto en el caso de una solicitud fallida.
* 401 no autorizado: Esta petición al servidor requiere que el cliente se autorice. Esto se suele hacer iniciando una sesión. Si el usuario sigue queriendo acceder al recurso protegido por contraseña, aparece el código de estado 401 (no autorizado) con una nota sobre lo que debe hacer.
* 404 no encontrado: Uno de los códigos de estado más frecuentes es el 404-error. Se utiliza para indicar que un enlace solicitado no existe. Si la página de error muestra un código de estado HTTP diferente al 404, se produce un error 404 suave.