[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12776636#action_12776636
 ] 

Ortwin Glück commented on HTTPCLIENT-889:
-----------------------------------------

Yeah, for "small" request entities (such as form data) it doesn't make much of 
a difference. It's really only useful for
a) large request entities, such as image uploads over a low-bandwidth connection
b) request entities that are not cached/repeatable, i.e. only producible once 
(such as streamed data)

Judge for yourself if those are "the common" use case for HttpClient.

Mind you, reasons why a server would reject a request whose body it hasn't even 
seen are mainly:
- not authenticated
- not authorized
- content too large
- missing content-length information (chunked TE not supported/allowed)
- content type not expected/supported

> Should USE_EXPECT_CONTINUE be false by default?
> -----------------------------------------------
>
>                 Key: HTTPCLIENT-889
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-889
>             Project: HttpComponents HttpClient
>          Issue Type: Wish
>          Components: HttpClient
>    Affects Versions: 4.0 Final
>            Reporter: Ren Waldura
>            Priority: Minor
>             Fix For: 4.1 Alpha1
>
>
> It seems the point of USE_EXPECT_CONTINUE is to improve performance when 
> posting large data. 
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html says:
> << The purpose of the 100 (Continue) status (see section 10.1.1) is to allow 
> a client that is sending a request message with a request body to determine 
> if the origin server is willing to accept the request (based on the request 
> headers) before the client sends the request body. In some cases, it might 
> either be inappropriate or highly inefficient for the client to send the body 
> if the server will reject the message without looking at the body. >>
> There's nothing wrong with HttpClient performing well by default, however, 
> every other HTTP client library I've used does not behave like this (PHP 
> curl, Perl LWP). The default is always to do one request, including the body. 
> Maybe dumb, but simple.
> It seems to me HttpClient's default behavior should the simplest, most 
> compatible with all HTTP-speaking services out there. "100 Continue" is 
> somewhat advanced, and may not be correctly implemented by all services. 
> (That's of course how I found out about it -- my server doesn't implement it.)
> If USE_EXPECT_CONTINUE is used only for performance reasons, it seems like it 
> would be simpler (and therefore maybe more "correct") to have it "off" by 
> default. And only enable it when needed, when there is a good reason to.
> Just my thoughts. And a wish. Thanks! 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to