Error 400 Bad Request: ¿Qué es y cómo solucionarlo?
El error 400 Bad Request significa que el servidor rechaza la solicitud del cliente por contener una sintaxis que no puede procesar, como enviar un POST a una URL que solo acepta GET. También lo provocan cookies corruptas, DNS cacheados o URL mal escritas. Se soluciona revisando la URL, limpiando cookies y vaciando la caché DNS.
Un error 400 es un código de estado HTTP. Entra dentro de los códigos de error de cliente.
Estos códigos aparecen porque la solicitud del cliente (un navegador, un script, lo que sea) contiene una sintaxis incorrecta o no puede ser procesada por el servidor.
El más conocido de esta familia es el 404, que salta cuando el cliente pide al servidor una URL que no existe.
El error 400 es bastante menos conocido porque se da mucho menos, y aparece cuando el cliente parece haber enviado una solicitud incorrecta al servidor.
Un ejemplo: el cliente manda una petición de tipo POST (guardado de datos, como la que envía un formulario) a una URL que solo acepta peticiones de tipo GET, que son las que hacemos para obtener una página web.
Por convención, ante un código de respuesta 400 el servidor siempre responde indicando por qué se ha producido el error, salvo que la petición sea de tipo HEAD, un tipo concreto de petición HTTP que solo pide las cabeceras.
- Causas de un error 400
- Error en la URL del navegador
- Petición inválida del navegador
- Caché DNS como causa de error 400
- Solucionar el error 400 desde el navegador
- Revisar la URL
- Comprobar la resolución DNS y vaciar la caché del equipo o del navegador
- Revisar el encabezado de la petición web
Causas de un error 400
Como decíamos, las causas son múltiples, pero todas nacen de una solicitud incorrecta (al menos a ojos del servidor) del navegador o de la herramienta que hace de cliente. Vamos con las más comunes.
Error en la URL del navegador
Si escribes mal la URL del sitio que quieres visitar, puedes acabar en un error 400 en vez de en un error 404, como estamos acostumbrados.
Lo normal es que, al escribir una URL incorrecta, el navegador te devuelva un código de estado 404, es decir, un mensaje que dice que esa URL no se ha encontrado.
Además, los servidores suelen estar preparados para enviar al cliente a otra URL donde el error no llegue a verse.
Petición inválida del navegador
Si por algún motivo el navegador no envía bien la comunicación al servidor, salta un error 400 porque esa comunicación no es correcta.
Es un error poco frecuente y suele ir asociado a pérdidas de red provocadas por la cobertura móvil o por algún otro error relacionado con la pérdida de paquetes. Como las comunicaciones entre cliente y servidor tienen mecanismos de control para este problema, no suele ser demasiado habitual.
En el siguiente ejemplo hemos forzado un error 400 conectándonos a un servidor y lanzando una petición con un mensaje incorrecto, "GET / HTTP1.0".
El mensaje correcto sería "GET / HTTP/1.0", y con él la comunicación seguiría adelante:
[usuario@host ~]$ telnet 51.210.87.242 80 Trying 51.210.87.242... Connected to 51.210.87.242. Escape character is '^]'. GET / HTTP1.0 HTTP/1.1 400 Bad Request Server: nginx Date: Wed, 04 May 2022 19:28:32 GMT Content-Type: text/html Content-Length: 150 Connection: close <html> <head><title>400 Bad Request</title> </head> <body> <center><h1>400 Bad Request</h1></center> <hr><center>nginx</center> </body> </html> Connection closed by foreign host.
Caché DNS como causa de error 400
La caché DNS de tu equipo o de tu proveedor de internet también puede generar un error 400.
Internet funciona traduciendo los nombres de dominio a una dirección IP.
Si te conectas a la IP incorrecta y le pides la web de un dominio que no tiene, el servidor puede devolverte un código de estado HTTP 400.
Esto se ve al hacer peticiones en formularios web, por ejemplo.
Algunos formularios, como los de los sistemas de envío de correo electrónico, usan una característica llamada CSRF, que protege el formulario contra peticiones caducadas o no deseadas.
Si guardas mucho tiempo las cookies de sesión de un sitio que sirve para enviar correo, un webmail por ejemplo, y luego intentas mandar un mail, puedes recibir un error 400 provocado por esa petición caducada.
En el siguiente ejemplo hemos editado el código de seguridad que envía el navegador al mandar un email, y al rellenar el formulario ya no deja enviarlo.

Solucionar el error 400 desde el navegador
Si nos aparece un error 400 en un sitio web, lo primero que debemos pensar es que hay algo que no está funcionando bien de nuestro lado.
Sea un problema de configuración del navegador o una cookie corrupta, lo mejor que podemos hacer es investigar un poco por nuestra cuenta.
Revisar la URL
Como escribir mal una URL puede generar un error 400, lo más sencillo es empezar por lo obvio: revisar que la hemos escrito correctamente en el navegador.
Si la has escrito a mano, repásala con calma y quita cualquier carácter en el que te hayas podido equivocar.
Y como una cookie corrupta también puede estar detrás del error 400, borrar la información que el navegador tiene guardada sobre el sitio suele ser uno de los primeros pasos.
Puedes borrar las cookies de un sitio web en Mozilla Firefox pulsando F12, después debemos ir a la pestaña "Almacenamiento" y, en el apartado "Cookies", hacemos clic izquierdo sobre la cookie que queremos borrar y pulsa "Borrar todo".

Si con eso no fuera suficiente, podemos forzar un borrado de más contenidos en:
Vamos a "Editar" > "Herramientas" > "Privacidad y seguridad" > "Gestionar datos", buscamos el sitio web y pulsamos "Eliminar todos los mostrados".

Comprobar la resolución DNS y vaciar la caché del equipo o del navegador
Si el problema sigue ahí, prueba el vaciado de la caché DNS del navegador o del equipo.
Todos los navegadores tienen un sistema de caché DNS que ayuda a cargar las webs más rápido, pero puede provocar errores cuando ha habido cambios de DNS recientes.
Para borrar la caché DNS en Firefox:
Abre una nueva pestaña, escribe 'about:networking', ve a la pestaña "DNS" y pulsa "Clear DNS Cache".

Si el problema de DNS está en tu equipo, dependerá del sistema operativo que uses, pero con limpiar la caché DNS del navegador suele ser suficiente.
Revisar el encabezado de la petición web
Si revisar la URL no te ha solucionado el error, abre la consola del navegador y analiza la petición que has hecho, revisando las cabeceras.
Esta gestión es algo más avanzada y requiere conocer en profundidad cómo funciona una petición web hecha desde el navegador, qué métodos HTTP están involucrados y cómo funciona un navegador por debajo. Se usa sobre todo para depurar errores y problemas.
Froylan
22/02/2023 a las 04:30