On Sun, Jul 9, 2017 at 7:40 AM, Bjorn Reese via Boost
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.