hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Murty (JIRA)" <j...@apache.org>
Subject [jira] Created: (HTTPCLIENT-589) Avoid wrapping server responses in ContentLengthInputStream when client or server sets the Connection:close directive
Date Thu, 29 Jun 2006 01:10:31 GMT
Avoid wrapping server responses in ContentLengthInputStream when client or server sets the
Connection:close directive
---------------------------------------------------------------------------------------------------------------------

         Key: HTTPCLIENT-589
         URL: http://issues.apache.org/jira/browse/HTTPCLIENT-589
     Project: HttpComponents HttpClient
        Type: Improvement

  Components: HttpClient  
    Versions: 3.0.1    
 Environment: All environments
    Reporter: James Murty


I am working on a HttpClient-based application to send and receive potentially large files
(up to Gigabytes). When receiving large files the application allows the user to cancel the
download, at which time it closes the response input stream behind the scenes.

The input stream currently provided by HttpMethodBase.getResponseBody() for un-chunked responses
with a known content length is a ContentLengthInputStream, which automatically reads the remainder
of the wrapped response instead of closing it straight away. This behaviour does not work
well with very large files as the data is downloaded unnecessarily and the connection is held
open for long very periods.

Per the HTTP 1.1 spec section 14.10 it seems to me that either a server or a client in an
HTTP 1.1 connection can use the Connection:close directive to signal that a connection will
be non-persistent, and will therefore not require that all data be read before the connection
can be released (the cleaning up ContentLengthInputStream performs for persistent connections).

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10

Could HttpMethodBase be modified to check for this directive, from the server or client, and
avoid wrapping the response input stream in ContentLengthInputStream when it is present? It
seems straight-forward, though there may be side-effects I am not aware of. 


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Mime
View raw message