HTTPQUERY
Español

431 Request Header Fields Too Large

Uso

El código de estado 431 Request Header Fields Too Large indica que el servidor se niega a procesar la solicitud HTTP porque las cabeceras HTTP especifican demasiados datos.

Según el servidor, esto se refiere a la longitud total de todas las cabeceras HTTP combinadas o a cabeceras concretas. En cualquier caso, el cliente tiene la opción de eliminar una o varias cabeceras HTTP e intentar la solicitud de nuevo. Una posible solución para limitar el volumen de cabeceras HTTP es recortar o reducir las Cookies que se transmiten.

Impacto en SEO

Los motores de búsqueda como Google no indexan una URL con un estado de respuesta 431. Las URL indexadas previamente que devuelven este código de estado se eliminan de los resultados de búsqueda.

Ejemplo

El cliente solicita un recurso y el servidor responde con 431 Request Header Fields Too Large porque la combinación de dos valores de cookie de gran tamaño supera el límite máximo que el servidor establece para las cabeceras HTTP.

Solicitud

GET /tech-news HTTP/1.1
Host: example.com
Cookie: first_cookie=<very_long>; second_cookie=<long_again>

Respuesta

HTTP/1.1 431 Request Header Fields Too Large
Content-Type: text/html
Content-Length: 183

<html>
  <head>
    <title>Request Headers Too Long</title>
  </head>
  <body>
   <p>The request headers are too long.
   Try retrying without cookies.</p>
  </body>
</html>

Cómo solucionarlo

Borre las Cookies del dominio afectado en el navegador. La acumulación de cookies es la causa más frecuente. Los scripts de terceros, las etiquetas de analítica y los píxeles de marketing establecen cookies en cada visita, y su tamaño combinado acaba superando el límite del servidor. Borre primero las cookies específicas del sitio antes de realizar una purga completa de las cookies del navegador.

Reduzca los valores de las cabeceras personalizadas que se envían con las solicitudes. Los tokens de autorización largos, las cabeceras X-Custom-* de tamaño excesivo y los parámetros de consulta codificados en URL incrustados en las cabeceras contribuyen al tamaño total.

En el lado del servidor, aumente los límites del búfer de cabeceras:

Audite el uso de cookies en todo el sitio. Limite la cantidad de cookies establecidas por dominio y utilice los atributos SameSite, Path y Domain para impedir que las cookies se propaguen a subdominios y rutas donde no son necesarias. Traslade los datos de sesión a almacenamiento del lado del servidor o a localStorage cuando los datos no necesiten viajar con cada solicitud.

Elevar los límites del servidor por encima de 32 KB introduce riesgo de denegación de servicio. Aumente los límites solo lo justo para dar cabida al tráfico legítimo y combine el cambio con una supervisión del tamaño de las solicitudes.

Chrome y los errores 431

Chrome muestra “Bad Request - Request Header Field Too Long” o “Bad message 431” cuando las Cookies acumuladas de un dominio hacen que las cabeceras de solicitud superen el límite del servidor. Borrar las Cookies del sitio concreto en la configuración de Chrome (Configuración > Privacidad > Cookies > Ver todos los datos de sitios) resuelve el error de inmediato sin afectar a otros sitios.

Referencias de código

.NET

HttpStatusCode.RequestHeaderFieldsTooLarge

Rust

http::StatusCode::REQUEST_HEADER_FIELDS_TOO_LARGE

Rails

:request_header_fields_too_large

Go

http.StatusRequestHeaderFieldsTooLarge

Symfony

Response::HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE

Python3.5+

http.HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_REQUEST_HEADER_FIELDS_TOO_LARGE

Angular

@angular/common/http/HttpStatusCode.RequestHeaderFieldsTooLarge