Boost logo

Boost :

Subject: Re: [boost] [review][beast] Five-days Remaining
From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2017-07-09 14:52:24


On Sun, Jul 9, 2017 at 7:40 AM, Bjorn Reese via Boost
<boost_at_[hidden]> wrote:
> On 07/07/2017 01:49 AM, Vinnie Falco via Boost wrote:
> Are HTTP operations really stateless? How does FieldsReader's chunked
> and keep_alive fit into this picture?

>From Beast's perspective, there is no state carried from one message
to the next. Within a single message there is state, this is captured
by the basic_parser and serializer objects for reading and writing
respectively.

Callers will usually have state. For example the caller has to inform
the parser not to expect a response body when the sent request
specified method==HEAD.

To answer your question, yes, Beast does not maintain state from one
message to the next on HTTP connections. Therefore, free functions to
send and receive are the logical choice of interface.

> I assume that you are thinking about HTTP/2 multiplexing here.

Yes. I haven't studied the HTTP/2 specification in depth but my first
interpretation is that a correct implementation needs to have calls to
async_read issued on behalf of the caller in order to implement stream
prioritization and resource limits.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk