RST_STREAM(OK) after an HTTP response

A server may respond to a request without completely reading the
message body. As an example, consider returning 403 Forbidden to a
large POST request.

In HTTP/2, the server would send a HEADERS frame containing the 403
response with the END_STREAM flag set, leaving the stream in the
half-closed (local) state.

My intuition is to follow up the response with a RST_STREAM (OK) in
order to close the stream entirely if I want to discard the body, but
also want to make sure that the client does not treat this as an error
and considers the response as valid.

The RST_STREAM text state that the frame is for "abnormal termination"
of a stream and that as a receiver it is to indicate rejection,
cancellation, or an error.

I propose that the text around RST_STREAM be clarified that from
something like "abnormal termination" to "abrupt termination" and that
this case be called out as an example in the HTTP mapping section to
make sure implementors treat the HTTP response as valid.


I opened issue https://github.com/http2/http2-spec/issues/618 on github.

Received on Wednesday, 24 September 2014 15:05:54 UTC