NAME

Unblock::HTTP1::Transaction - One HTTP/1 request and response exchange

DESCRIPTION

A Transaction connects one Uniform request with its response and any incremental body production. It owns no socket and performs no waiting.

For a client streaming request body, write() and end() produce body bytes. For a server streaming response body, they do the same after respond(..., stream_body => 1).

A server Transaction can send an informational response with send_informational() before the final respond().

STATE

The common Unblock HTTP transaction lifecycle vocabulary is:

state
error
is_complete
is_cancelled
is_error
is_terminal

error() is undefined unless the Transaction failed. Cancellation is a separate terminal state and does not manufacture an error string.