httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mathias Herberts <>
Subject Dechunking code in Apache 2.0.49
Date Thu, 03 Jun 2004 21:02:05 GMT

I've been deploying Apache 1.3 instances for many years now, relying 
heavily on the mod_proxy / mod_rewrite couple to build our HTTP backbone.

In the past year I've met a problem with the proxying of requests made 
by MIDP (mobile devices) clients. Those requests were using 
'Transfer-Encoding: chunked' and mod_proxy in Apache 1.3 was not willing 
to forward those requests correctly. I filed bug #17877 and provided a 
patch providing a workaround for this situation. My patch used 
passed unchanged the 'Transfer-Encoding: chunked' request header if it 

Even though there is a question in making mod_proxy pass hop by hop 
headers to the origin server as being legitimate, this patch solved my 
problem and has served us well since then.

I am now planning on rolling out Apache 2.0.49 and I am again faced with 
a similar problem. This time the 2.0.49 server is using mod_proxy / 
mod_rewrite / mod_dav and proxying DAV requests. DAV requests, 
especially those using method PUT rely heavily on 'Transfer-Encoding: 
chunked' as the data being PUT onto the DAV store might not have a known 
size in advance. The problem mentionend in bug #17877 happens again, but 
this time I do not see any easy way of patching httpd 2.0.49 as 
REQUEST_CHUNKED_PASS and the associated code has been removed back in 2000!

Is this issue a known one (I've not found anything in the bug DB about 
it apart from the bug I filed last year) or am I alone experiencing it? 
Is there any roadmap to make mod_proxy support the forwarding of chunked 
requests? Dechunking is really impractical in terms of memory 
consumption, just consider a PUT request writing an image file for a 
DVD, we're talking more than 4 gigs of data.

What is the position of the Apache community on the passing of 'hop by 
hop' headers to origin servers by mod_proxy? The code in proxy_http.c 
says 'RFC2616 13.5.1 says we should strip these headers', but RFC 2616 
13.5.1 defines 'Hop-by-hop headers, which are meaningful only for a 
single transport-level connection, and are not stored by caches or
  forwarded by proxies.' it never uses SHOULD or MUST as described in 
RFC 2119 and therefore allowing mod_proxy to forward the 
'Transfer-Encoding' header would not, IMHO, violate RFC 2616 13.5.1.

Any comment welcome,



View raw message