cro-http-response
Cro::HTTP::Response
The Cro::HTTP::Response
class does the Cro::HTTP::Message
role, which
provides methods for working with headers and the request body. This class
adds functionality specific to HTTP responses.
Status code
The status
property is used to get and set the HTTP response status code.
It is constrained to hold a 3-digit integer value in the range 100..599.
Stringification
Calling the Str
method on a Cro::HTTP::Response
will serialize the status
line and headers, giving the HTTP/1.*
wire representation of the message
but excluding the body.
Push promises (server side)
The add-push-promise
method adds a Cro::HTTP::PushPromise
to the response.
Mutiple push promises may be added. Provided the response is handled by the
HTTP/2.0 response serializer, push promise frames will be sent to the client,
and the Cro::HTTP::PushPromise
will be sent to the HTTP/2.0 request parser,
which will emit it as if it were an incoming request.
The close-push-promises
method indicates that no more push promises may be
added beyond this point. It is typically called by the response serializer,
and ordinary Cro users will have no need to call it.
The push-promises
method returns a Supply
that will emit
each of the
added push promises, and be done
provided close-push-promises
was called.
Push promises (client side)
The push-promises
method returns a Supply
that emits any push promises
that are sent by the remote server. Each will be emitted as an instance of
Cro::HTTP::PushPromise
. One no further push promises may arrive, the
Supply
will be done
. In the event this method is called on a response
that is not using HTTP/2.0
, then returned Supply
will be done
immediately.
Internally, the add-push-promise
and close-push-promises
methods are used
by the HTTP/2.0 response parser to set up the responses. Put another way, the
client and server side of push promises share an API, with opposite parts of
it considered internal and external depending which side one is on.