1. Códigos de estado
Oficial

HTTP Error 431: Request Header Fields Too Large

Escrito por

Al interactuar con páginas web y APIs, los servidores devuelven códigos de estado para informar si la petición se ha podido procesar con éxito o no.

Uno de estos códigos es el error 431 o Request Header Fields Too Large, y en este artículo te explicamos qué és, cuándo aparece y posibles maneras de evitarlo.

Además, en el caso de que estés trabajando con una API, te daremos un recurso muy útil para testear el código HTTP 431 desde tus scripts.

¿Qué es el error HTTP 431?

Este error pertenece a los códigos de estado HTTP de la familia 4xx, que indican que problema se ha producido en el lado del cliente.

En concreto, el error 431 se genera cuando el servidor no puede procesar la petición porque las cabeceras son demasiado grandes.

¿Qué causa el error HTTP 431?

Si estás recibiendo el error 431 como respuesta a una petición API, es posible que estés enviando demasiada información en las cabeceras.

La causa de esta respuesta puede darse bien porque tan sólo una cabecera excede el tamaño máximo permitido, en cuyo caso el servidor debería devolver cuál es la que está generando el problema, o porque el conjunto de cabeceras en su totalidad supera el límite.

Los casos más comunes por los que puedes encontrarte con el error 431 son:

  • Tamaño de las cookies: estás enviando muchas cookies en la petición o éstas son muy grandes.
  • Longitud de la URL o de la cabecera Referer: la URL a la que estás intentando acceder o la cabecera Referer son muy largas.

¿Cómo arreglar el error HTTP 431?

Hay varias formas de solucionar el error 431. Algunas se pueden gestionar desde el lado del cliente, mientras que otras requieren cambios en el servidor.

Si sólo puedes acceder a la API desde el lado del cliente, prueba lo siguiente:

  • Reduce el tamaño de las cookies que estás enviando.
  • Elimina la cabecera Referer o acorta la URL, modificando los parámetros de la query.
  • Incluye sólo las cabeceras necesarias en la petición.
  • Si estás usando un proxy o firewall, comprueba que no estén añadiendo cabeceras adicionales que puedan estar causando el problema.

Si tienes accesso al servidor, puedes modificar la configuración para evitar que se genere el error:

  • Aumenta el tamaño permitido de las cabeceras.
  • Habilita la compresión de las cabeceras.
  • Habilita la versión 2 de HTTP (HTTP/2), que permite el uso de cabeceras comprimidas, lo que puede reducir la cantidad de datos que se envían y aumentar el rendimiento.

¿Cómo evitar el error HTTP 431?

Para evitar el error 431, lo más recomendable es mantener las cabeceras de las peticiones lo más pequeñas posible y ajustar la configuración del servidor en la medida de lo posible.

Optimizando la información que envías te ayudará no sólo a prevenir el error, sino a mejorar el rendimiento de las llamadas a la API.

¿Cómo probar el error HTTP 431?

Si estás trabajando con una API y necesitas reproducir un código de estado HTTP específico durante tus pruebas, puedes hacerlo a través de httpstatus.is. Es un servicio muy sencillo diseñado para ayudarte a comprobar cómo tu código gestiona diferentes respuestas de HTTP.

Para probar el código 431: Request Header Fields Too Large, simplemente haz una petición a httpstatus.is/431.

El servidor te devolverá una respuesta en formato JSON similar a esta:

HTTP/1.1 431 Request Header Fields Too Large
Content-Length: 76
Content-Type: application/json; charset=utf-8
x-powered-by: www.helloapi.co

{
    "code": 431,
    "description": "Request Header Fields Too Large",
    "official": true
}

Referencias

Simplifica la integración de tu API

Convierte usuarios confundidos en clientes felices facilitándoles el proceso de onboarding

Hello API – Product screenshot