Bytecode wrote:
According to Tomcat docs, the purpose of maxPostSize is:

The maximum size in bytes of the POST which will be handled by the container 
FORM URL parameter parsing. The limit can be disabled by setting this attribute 
to a value less than or equal to 0. If not specified, this attribute is set to 
2097152 (2 megabytes).

Now the question is what's meant by "the container FORM URL parameter parsing"? 
What's a FORM URL? What's the container's FORM URL parameter parsing? Also, what is a 
possible use case of this parameter?

As a ganeral explanation : at the base the "maximum post size" setting (available in Tomcat but also in Apache httpd and probably most webservers), is a security measure. It is there to avoid the possibility for some miscreant to overwhelm your server by sending it a POST request with a body of, for example, 10 Gigabyte, through a slow connection. In the absence of such a limit, this would force the server to dedicate a process to just sit there reading the content of the POST, possibly for hours. It would also tie up a number of resources at the server side (to store the POST content), and maybe cause difficulties when the POST is finally terminated and the body has to be parsed etc.. In other words, at best this might cause a denial-of-service, and at worst crash your server with for example an out-of-memory condition. The setting is thus available so that you, the application developer, can determine which is the maximum likely valid size of a POST to your server or application, and reject POSTs above this limit. The webserver will then still accept POST requests, but as it is reading the POST body, it will count the bytes, and as soon as this limit is reached, it will interrupt this request and reject it with an error.

As to the "FORM URL parameter parsing" expression : to my knowledge, this does not really correspond to any formal HTTP RFC or Servlet Spec well-defined expression. It is probably just an expression chosen by the writer of the documentation you refer to, to convey the general idea that the webserver, when it processes a POST request, at some point has to parse the body of the request to extract the various request parameter names and contents. And, before it can start doing that, it must have the entire POST body available, which means the entire POST body has been read and saved somewhere. Which rejoins the explanation above.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to