Error 400 Bad Request: ¿Qué es y cómo solucionarlo?

Error 400 Bad Request: ¿Qué es y cómo solucionarlo?

Fecha: 06/05/2022
Compartir y resumir con IA (¡Elige tu favorita!):
Haz click en los botones de abajo para obtener un resumen del post. Fórmate con Raiola ¡En un futuro habrá más!

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.

Índice del artículo

  • 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.

Error 400 bad request producido por petición incorrecta del navegador

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".

Borrar cookies del navegador en las herramientas de desarrollo del navegador

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".

Borrar cookies del navegador en las preferencias del navegador

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".

Borrar caché DNS en el navegador web

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.

Álvaro Fontela
Álvaro Fontela

Consultor WordPress, además de CEO y cofundador de Raiola Networks. Autor del libro "Curso Práctico de WordPress" y speaker en congresos de marketing digital.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 2 comentarios en Error 400 Bad Request: ¿Qué es y cómo solucionarlo?
Avatar del autor del comentario

Froylan

22/02/2023 a las 04:30
No puedo acceder a mi dominio, alguien que me pueda ayudar
Responder
Avatar del autor del comentario

Alvaro Fontela

23/03/2023 a las 11:45
Hola Froylan, si estas alojado con nosotros contacta con nuestro departamento de soporte.
Responder