lunes, 13 de junio de 2022

Header demasiado largo en una solicitud get para una app web

Si para una solicitud web de tipo get se retorna un mensaje que indica que el header de la cabecera es demasiado largo, como este:

Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Request header is too large

Y si estamos con Tomcat podemos modificar o agregar el parámetro que resuelve esto en el archivo conf/server.xml

agregando al tag del conector http puerto 8080, en mi caso tomcat version 9.0.63 el tag original es:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Se agrega el valor máximo en kilobytes del header, ej: maxHttpHeaderSize="65536" para 65 megas

quedando este tag de la siguiente forma:

<Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" />

Luego reiniciar tomcat y probar.