MAX_CONCURRENT_STREAMS=0 and PUSH_PROMISE

It is possible to set SETTINGS_MAX_CONCURRENT_STREAMS to 0. AFAIK, the
design rationale behind this is that a client can forbid server push if it
does not implement it yet or just does not want to receive push streams.

Since streams in "reserved (local)" state do no count as active stream, the
server can still promise push streams even if
SETTINGS_MAX_CONCURRENT_STREAMS is 0. (But it can not actually send the
content on the promised stream.)

This goes against the design rationale, since clients will still have to be
able to deal with PUSH_PROMISEs if they want to comply to the standard.

What is the rationale behind not counting reserved streams as active? They
usually become active very soon so it would make sense to count them as
active as well. This would also prohibit servers promising streams when
SETTINGS_MAX_CONCURRENT_STREAMS is 0.

  Gábor

Received on Tuesday, 23 July 2013 14:29:22 UTC