¿Y es configurable? ¿Puedo configurar Tomcat para que una URL con, digamos, 200K de parámetros de consulta pase correctamente al servlet contenido?
Sí, sé que uno debe usar POST cuando tiene muchos datos; Esa es una opción menos agradable en este caso particular. La aplicación contenida (un motor de búsqueda) espera una solicitud GET para realizar una búsqueda.
server.xml
configuración, sin notarlo, y de repente lo golpeamos. Gotcha dolorosa: no se registró nada en eso, las conexiones se interrumpieron en silencio (ya no recuerdo el estado HTTP). Me topé con la documentación en tomcat.apache.org/tomcat-5.5-doc/config/http.html antes, sin embargo, no asocié elmaxHttpHeaderSize
nombre ni la descripción para que se relacionen con los parámetros de consulta de solicitud GET.RFC2616 no impone la longitud de una solicitud HTTP GET , como informa Microsoft para su página de soporte de longitud máxima de IE .
Entonces, la longitud máxima de GET es un problema relacionado con el cliente (navegador) . Si su aplicación es utilizada por personas a las que puede obligar a usar un navegador determinado, simplemente puede encontrar cuál es la longitud que admite este navegador.
En todos los casos, sugiero echar un vistazo a la página de Wikypedia sobre los problemas relacionados con el navegador en la cadena de consulta (la parte de la solicitud que trae parámetros para aplicaciones del lado del servidor, la que sigue al "?" Eventualmente presente en una solicitud.
Por supuesto, quizás Tomcat también pondrá un límite, en el lado del servidor. RFC dice:
para que pueda probar fácilmente si Tomcat tiene un límite y averiguar cuál es este límite simplemente usando diferentes solicitudes, comenzando con una muy larga que da el error y bajando a la mitad. Luego use el método de bisección para encontrar rápidamente el valor exacto.
fuente
Para el conector AJP, debe ajustar el
packetSize
atributo:fuente
ProxyIOBufferSize 65536
en su configuración httpd.Puede cambiar la configuración en el servidor Tomcat (.. \ Tomcat 6.0 \ conf \ server.xml)
<Puerto del conector = "8983" maxHttpHeaderSize = "100000" protocol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" />
fuente