hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Valdenaire (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCLIENT-600) Http Client does not fix incorrect content-lenght headers
Date Fri, 15 Sep 2006 14:03:22 GMT
    [ http://issues.apache.org/jira/browse/HTTPCLIENT-600?page=comments#action_12434984 ] 
            
Denis Valdenaire commented on HTTPCLIENT-600:
---------------------------------------------

Thanks for you answer. 

I had this idea because i saw it in a perl module (lwp). I tried to send incorrect content-lenght
to emulate the behaviour of a broken client but the perl code corrected it. So i had to modify
the lib so it doesn't modify it.

At least can we just issue a warning and not change it ? 

I agree that the content-length should not be modified if set explicitly but if false, it
will cause an error that won't be easy to find. The warning (of debug, or trace) could help
and will not modify the behaviour of the class.

But again, you're right, the program should not set - or forward the content-length if unsure.

Denis

> Http Client does not fix incorrect content-lenght headers
> ---------------------------------------------------------
>
>                 Key: HTTPCLIENT-600
>                 URL: http://issues.apache.org/jira/browse/HTTPCLIENT-600
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpClient
>    Affects Versions: 3.1 Alpha 1
>         Environment: All
>            Reporter: Denis Valdenaire
>
> I discovered that the method 
> addContentLengthRequestHeader (found in file methods/MultipartPostMethod.java) doesn't
"fix" the content-lenght when this one is incorrect. It adds one if getRequestHeader("Content-Lenght")
is null, but it should also verify that the content-lenght is correct.
> I suggest something like :
> long len = getRequestContentLength();
> if (getRequestHeader("Content-Length") == null || getRequestHeader("Content-Length")
!= len) { 
>             setRequestHeader("Content-Length", String.valueOf(len));
> }
> Sending an incorrect Content-Length blocks the server if the string sent is smaller than
announced : waiting for more, and finally reset the connection. If it's too big, you lose
data.
> I've seen this problem in a reverse proxy program (with httpclient communicating with
the real servers) when the client send urlencoded data and this data is modified (partly urldecoded)
but not the content-lenght.

-- 
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