¿Qué narices es esto?
El código 400 Bad Request es el "no entiendo qué carajo me estás pidiendo" de HTTP. Es la respuesta del servidor cuando tu petición está tan mal formada que ni siquiera puede procesarla. Como cuando le pides a Alexa que "ponga esa canción de ese cantante que hace esa cosa", pero para servidores web. El problema está del lado del cliente, no del servidor.
Este código es la navaja suiza de los errores del cliente. Aparece cuando la sintaxis de la petición es incorrecta, faltan headers obligatorios, el JSON está mal formado, los parámetros son inválidos, o básicamente cualquier cosa que haga que el servidor diga "esto no tiene sentido". Es el equivalente digital de entregar una receta médica escrita con crayones.
El 400 aparece típicamente cuando:
- JSON mal formado (comas faltantes, llaves desbalanceadas)
- Headers HTTP inválidos o malformados
- Parámetros con tipos de datos incorrectos
- URLs mal codificadas o con caracteres raros
- Campos obligatorios faltantes en formularios
🎯 Dato curioso
El 400 es un comodín. Muchos servidores lo usan cuando no saben qué error específico devolver. Es como el "no sé, algo está mal" de HTTP. Para casos específicos existen 401, 422, 429, etc.
La frustración del 400 es que es muy genérico. Te dice que algo está mal, pero no necesariamente qué. Los buenos APIs incluyen un mensaje de error descriptivo en el body de la respuesta. Es la diferencia entre "error de sintaxis en línea 1" y "falta una coma después de 'nombre' en tu JSON". Por eso siempre revisa el contenido de la respuesta, no solo el código.