tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S Ahmed <sahmed1...@gmail.com>
Subject Re: clarification on how data is streamed and handled by tomcat
Date Wed, 04 Jan 2012 20:20:38 GMT
" But if you call certain APIs (e.g. getParameter()) the call will hang
until entire POST request body is received from the client and
processed. "

So this means if you don't reference request.getParameter then it won't be
streamed from the client?

The reason I am asking is I will perform api usage limites, and it would be
great if I don't have to bring in the entire request header + body if I can
get away with it.

On Wed, Jan 4, 2012 at 1:58 PM, André Warnier <aw@ice-sa.com> wrote:

> S Ahmed wrote:
>
>> Tomcat 6
>> Spring MVC, where my controllers method has both httpservletrequest and
>> httpservletresponse as parameters.
>>
>> The point is that I want to know the effects of others sending me large
>> values in a http post (not an image upload, but a form post).
>>
>> I'm assuming once it is sent by the client as a http post, and my servlet
>> responds to the request tomcat has already streamed that data and whether
>> I
>> do:
>>
>> String p1 = request.getParameter("big_**payload")
>>
>> or not, it has already been loaded into memory.
>>
>> Am I correct?
>>
>
> To me, it seems that Konstantin already answered those questions precisely
> and in detail below.
>
>
>
>> Is there a maximize size setting in tomcat?
>>
>> On Wed, Jan 4, 2012 at 1:03 PM, Konstantin Kolinko
>> <knst.kolinko@gmail.com>wrote:
>>
>>  2012/1/4 S Ahmed <sahmed1020@gmail.com>:
>>>
>>>> Say I have a simple servlet or spring mvc application running on tomcat.
>>>>
>>>> Tomcat is running as a webserver on port 80.
>>>>
>>>> A client makes a http POST request to my page www.example.com/submit
>>>>
>>>> If the client adds a very large file with the POST, does this mean that
>>>> when my servlet code starts to execute, tomcat already has the entire
>>>> request content in memory? (including the very large POST parameter)
>>>>
>>> 1. Tomcat version =?
>>> 2. What API are you using to read the file?
>>>
>>> In general request processing starts after the headers in HTTP request
>>> have been read. At that point you can call getInputStream() and read
>>> the body of the POST request while it is being received from the
>>> client.
>>>
>>> But if you call certain APIs (e.g. getParameter()) the call will hang
>>> until entire POST request body is received from the client and
>>> processed. It is said that those methods "consume" the body of a POST
>>> request.
>>>
>>> 3. In most implementations large file uploads are not stored in
>>> memory, but are written to a temporary file on your hard drive. (So
>>> the request body is processed, but you cannot say that it is "in
>>> memory").
>>>
>>> ------------------------------**------------------------------**
>>> ---------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.**apache.org<users-unsubscribe@tomcat.apache.org>
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.**apache.org<users-unsubscribe@tomcat.apache.org>
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message