Et est-ce configurable? Puis-je configurer Tomcat de sorte qu'une URL contenant, par exemple, 200 Ko de paramètres de requête parvienne à la servlet contenue?
Oui, je sais que vous devriez utiliser POST lorsque vous avez beaucoup de données. c'est une option moins agréable dans ce cas particulier. L'application contenue (un moteur de recherche) attend une requête GET pour effectuer une recherche.
server.xml
config, sans nous en rendre compte, et que nous l'avons soudainement atteinte. Douloureux piège: rien n’a été consigné à ce sujet, les connexions ont été silencieusement abandonnées (je ne me souviens plus du statut HTTP). Je suis tombé par hasard sur la documentation de tomcat.apache.org/tomcat-5.5-doc/config/http.html auparavant, mais je n'ai pas associé lemaxHttpHeaderSize
nom ni la description de celui-ci aux paramètres de requête de la requête GET.La longueur d'une requête HTTP GET n'est pas imposée par RFC2616 , comme Microsoft l'indique pour sa page de support de longueur maximale IE .
Ainsi, la longueur maximale de GET est un problème lié au client (navigateur) . Si votre application est utilisée par des personnes que vous pouvez forcer à utiliser un navigateur donné, vous pouvez simplement trouver quelle est la longueur prise en charge par ce navigateur.
Dans tous les cas, je suggère de consulter la page Wikypedia à propos des problèmes liés au navigateur de la chaîne de requête (la partie de la requête contenant les paramètres des applications côté serveur, celle qui suit le "?" Éventuellement présente dans une requête.
Bien sûr, peut-être que tomcat mettra également une limite, côté serveur. RFC dit:
vous pouvez donc facilement tester si Tomcat a une limite et déterminer ce qu’elle est simplement en utilisant différentes requêtes, en commençant par une très longue requête donnant l’erreur et diminuant de moitié. Ensuite, utilisez la méthode de bissection pour trouver rapidement la valeur exacte.
la source
Pour le connecteur AJP, vous devez ajuster l'
packetSize
attribut:la source
ProxyIOBufferSize 65536
votre configuration httpd.Vous pouvez modifier la configuration sur le serveur Tomcat (.. \ Tomcat 6.0 \ conf \ server.xml).
<Port du connecteur = "8983" maxHttpHeaderSize = "100000" protocole = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" />
la source