[ic] content-length http header

Kevin Walsh interchange-users@icdevgroup.org
Sun Dec 29 22:11:01 2002


Tim Stoakes [tim@ehost.com.au] wrote:
> 
> We are trying to use interchange through some closed/proprietry/unknown (non-caching) proxy software. The request goes 
> from client to proxy, then to interchange. Interchange replies to the request instantly, but the proxy times out on the 
> request after 60 seconds, and only *then* sends the data to client. We believe this is due to the fact that interchange 
> does not send the Content-Length header in the request. Is there any way to buffer output, so that the Content-Length can 
> be found, and then send the response after? (Without modifying all of our pages too much).
> 
> -OR- is this a known problem with some other workaround?
> 
> We are using apache-1.3.22 and an early interchange-4 version.
> 
Neither RFC 2616 (HTTP/1.1) nor RFC 1945 (HTTP/1.0) require a
"Content-Length" line to be specified in a response header.
Interchange has the ability to send response body fragments as and
when they're available (hot transfers), which means that it cannot
calculate the content length automatically in all cases.

Instead of using a Content-Length header, Interchange will send the
response header/body and then simply close the socket.  A standards
compliant client/proxy is expected to spot the closure and interpret
this to mean that no more data will be sent.  See RFC 2616, section 4.4,
subsection 5 or RFC 1945 section 7.2.2 for more information.

With the information available, I can only conclude that your
"closed/proprietary/unknown" proxy software is at fault and suggest
an upgrade to Apache, Squid or some other HTTP proxy technology.

A change could possibly be made to 4.9's Vend::Page::display_page(),
Vend::Dispatch::response() and Vend::Server::respond() to pass an
"end of file" flag around.  This flag could be used to generate
a "Content-Length" header line if $Vend::ResponseMade is false.  As
Interchange employs a perfectly valid "end of file" mechanism, I don't
believe that the above changes are likely to be made.  You may, of
course, hire a consultant to look into this properly, or make a similar
modification yourself.

-- 
   _/   _/  _/_/_/_/  _/    _/  _/_/_/  _/    _/
  _/_/_/   _/_/      _/    _/    _/    _/_/  _/   K e v i n   W a l s h
 _/ _/    _/          _/ _/     _/    _/  _/_/    kevin@cursor.biz
_/   _/  _/_/_/_/      _/    _/_/_/  _/    _/