Re: Should an incremental proxying middleware be able to replay HTTP request bodies?

On Mon, Mar 02, 2026 at 04:04:51PM +1300, Amos Jeffries wrote:
> On 26/02/2026 11:56, Guoye Zhang wrote:
> > Hi everyone,
> > 
> > We are discussing requirements for an HTTP client used by a proxying middleware. Traditional HTTP middleware buffers the entire request body before forwarding the request upstream, so request bodies can be replayed.
> 
> That is not true. Some do this, some do not.
> Some only do it for pipelined messages.
> 
> Squid for example only buffers until the request headers are received and
> validated. The content/body is allowed to incrementally forward.

Agreed, buffering is extremely expensive and a performance killer in
general. In haproxy we're able to replay a request under certain
conditions, but the entire request needs to fit into a buffer, which
is 16kB by default (but is configurable and not recommended to be
larger).

Also, in practice what I'm seeing is that users who want to enable
request replay do not focus that much on the method, because they
know that the application is replay-safe and they absolutely want
to hide any possible application error from their users.

Regards,
Willy

Received on Tuesday, 3 March 2026 03:53:49 UTC