El error 431 aparece cuando el servidor rechaza una solicitud porque uno o varios encabezados HTTP (headers) enviados por el cliente son demasiado grandes o exceden los límites permitidos.
Esto puede deberse a:
-
Cabeceras individuales demasiado extensas
-
Conjuntos de cabeceras que en total superan el tamaño máximo
-
Cookies gigantes
-
Tokens o datos innecesarios enviados en headers
El servidor básicamente dice:
“No puedo procesar tu petición. Tus cabeceras son demasiado grandes.”
Causas más comunes
-
Cookies demasiado grandes o corruptas (muy típico).
-
Tokens JWT excesivamente largos enviados en
Authorization. -
Headers repetidos generados por errores de código.
-
Datos que deberían enviarse en el body, pero se envían como headers.
-
Aplicaciones SPA que guardan demasiada información en cookies.
-
Límites muy estrictos en Nginx o Apache.
-
Bots o herramientas enviando cabeceras mal formadas o gigantes.
Soluciones recomendadas
1) Eliminar cookies innecesarias o limpiar caché
El problema más común es una cookie inflada, corrupta o demasiado larga.
En el navegador:
-
Borrar cookies del sitio
-
Limpiar cache
-
Reiniciar sesión
2) Reducir tamaño de tokens o moverlos a otro lugar
Ejemplos:
-
JWT de más de 8 KB → demasiado grande
-
Tokens enviados en cada request cuando no es necesario
Solución:
-
Guardar tokens cortos
-
Usar almacenamiento de sesión o local storage
-
Enviar tokens solo cuando aplique
3) Revisar headers enviados por tu aplicación
Evitar:
-
Enviar JSON codificado en base64 dentro de headers
-
Enviar configuraciones o datos grandes en
X-Custom-* -
Duplicar headers por errores en funciones o librerías
4) Aumentar los límites en Nginx
En nginx.conf:
o más:
5) Aumentar límites en Apache
En .htaccess o apache2.conf:
6) Verificar proxys y CDN
Servicios como Cloudflare o HAProxy pueden rechazar headers grandes antes de llegar al servidor real.
Solución:
-
Reducir cookies
-
Usar tokens más pequeños
-
Configurar reglas de seguridad
7) Revisar aplicaciones SPA o frameworks (React, Angular, Vue)
Estas aplicaciones pueden generar tokens grandes o cookies con datos sensibles.
Evitar:
Guardar toda la sesión en cookies
Enviar estados gigantes en cada request
Usar tokens no comprimidos
Consejo Pro
Para evitar el error 431:
-
Mantén cookies < 4 KB
-
Mantén JWT o tokens compactos
-
No guardes datos innecesarios en headers
-
Limpia cookies y renueva tokens al detectar este error
-
Aumenta límites solo si es estrictamente necesario
El tamaño típico recomendado para headers es entre 4 KB y 16 KB por petición.