On Tue, 2012-02-28 at 13:45 +0000, Mark Thornton wrote:
> On 28/02/12 12:31, Oleg Kalnichevski wrote:
> > On Tue, 2012-02-28 at 10:50 +0000, Mark Thornton wrote:
> >> I am trying to implement a pipelined client using 4.1.4 (Async client
> >> and core 4.2 aren't yet GA). It would appear that
> >> AsyncNHttpClientHandler does not permit pipelining.
> > No, it does not. The expect-continue handshake support and request
> > pipelining are pretty much mutually exclusive. Default protocol handlers
> > shipped with HttpCore implement expect-continue handshaking as it is
> > required by the HTTP/1.1 specification, while request pipelining is
> > optional.
> 
> Not quite exclusive --- the expect handshake will force a pipeline flush 
> but pipelining can be used when there is no expect-continue outstanding. 
> Obviously it requires more work and additional synchronization between 
> send and receive parts. Will this change in 4.2?
> 

I am not sure it is that simple. Sending a response to a pipelined
request while the client is expecting a 100-continue _or_ a 4xx status
code in case of a failed expectation would directly violate the
specification in my opinion. Personally I do not see a non-ambiguous way
of supporting both the expect-continue and request pipelining at the
same time, but I'd be enormously happy to see someone prove me wrong by
submitting such a protocol handler ;-) 

> > Hope this helps Oleg 
> 
> Thanks very much, it does give me confidence to proceed. I am slightly 
> tempted to extend the protocol to permit out of order responses.
> 

I would advise against bastardizing the HTTP protocol. You probably
should consider using WebSockets or Google SPDY if you want to support
fully asynchronous message exchanges.

Hope this helps

Oleg

> regards,
> Mark Thornton
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 



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

Reply via email to