You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Lionel Fairon <lf...@proof.be> on 2008/06/25 18:00:48 UTC

[users@httpd] Chunked Encoding

Hi Group, 

I've a problem with a third party agent running on apache 2.2.6 
(authorization agent). I'm then trying to understand exactly what is the 
normal behavior of apache running as a reverse proxy : 

When the user sen a POST with large amount of data (several Mb)
1. The client opents tcp (http) connection to the RP
2. The Reverse Proxy opens a tcp (http) connection with the Back-end server
3. The client sent continuous data (Starting with POST method) and once the 
Buffer (defined in ProxyReceiveBufferSize Directive) is filled, the data is 
released in the connection opens with the back-end. 

Is that right ? 

When enabling this third party agent, all the data is first spooled on 
Apache (in memory) and once completely received, released at once to the 
back-end :
1. The client opents tcp (http) connection to the RP
2. The Reverse Proxy opens a tcp (http) connection with the Back-end server
3. The client sent continuous data (Starting with POST method) and once the 
complete POST has been received, the data is released in the connection 
opened with the back-end. (ProxyReceiveBufferSize Directive is ignored)
The problem with this approach is that a huge amount of memory is used, the 
tranfer takes much more time, and if the time needed to upload a file exceed 
the "idle timout" value of the back-end server, the connection is closed and 
the POST fails. 

The agent vendor says :
"VersionX and later added chunk encoding support to the web agent and now
the web agent will gather all the chunks and process them before sending
them on to the rest of the web server.
If we do not do this then POSTed data would not be stored prior to the
authentocation decision and accesses being granted." 

and suggest to use "proxy-sendchunks". (or to increase back-end server 
timout...) 

The problem is if I'm using proxy-sendchunks without "proxy-sendcl", the 
data is not anymore "spooled" on apache, but the POST command is refused by 
most of my back-end application (Websphere using fileuploadbase 1.0, Sun, 
ASP.NET ,...)
And if additionally I enable "proxy-sendcl", the benefit of 
"proxy-sendchunks" is lost (data is "spooled" again in RP memory). 

Any ideas ? 

Regards, 

Lionel

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org