REFUSED_STREAM and CANCEL

I'm just going through the HTTP/2.0 error codes and this leaped out.

Can anyone explain the useful difference between the REFUSED_STREAM
and CANCEL error codes?

All the superficial reasons carry no semantic value:
 - who initiated the stream
 - whether the stream has (or has not) started processing

Furthermore, the implication from REFUSED_STREAM is that this is a
rejection, but we don't block stream use on permission.  We just send
data and wait for the other side to object.

Abandonment of a stream doesn't just occur from the stream initiator
side (even if that is the natural place to abort from).  The
implication of asymmetry seems unnecessary.

All of the use cases could be covered with a single CANCEL_STREAM code.

Received on Tuesday, 26 March 2013 18:16:51 UTC