Re: Post before acking settings?

On 28 April 2016 at 11:46, Jesse Wilson <jesse@swank.ca> wrote:
> As I understand this, nginx sets the default window size to 0 for all
> streams. The flow control window isn’t expanded from 0 until nginx finds a
> module to accept the request. In terms of round trips this seems like a
> regression from HTTP/1.1:

Yes, think of this as equivalent to forcing 100-continue on every
request.  That has the effect of discouraging requests with bodies for
performance reasons.

This is definitely unfortunate from the perspective of performance,
but it's an understandable position.  What a server is _expected_ to
do is buffer up to the connection-level flow control window.

However, it might be that 64k per connection (plus request header
fields) is too much for some servers and RST_STREAM is the only
option.  I would hope that only constrained devices do that, but - as
Roberto is fond of pointing out - servers are effectively constrained
devices.

A better solution all around would be to set a small connection-level
flow control window and to allow that much data to be buffered.  That
would allow requests that fit into that window to avoid the round trip
tax.

(For the galleries, the SETTINGS ack thing was a red herring, nginx
rejects requests with bodies.  Which of course you won't send once the
SETTINGS are applied.)

Received on Thursday, 28 April 2016 08:00:31 UTC