RE: RST_STREAM(OK) after an HTTP response

While I understand the scenario, it seems more appropriate for the client to send the RST_STREAM(OK) if it decides to abort sending the rest of the body.

-----Original Message-----
From: Jeff Pinner [mailto:jpinner@twitter.com] 
Sent: Wednesday, September 24, 2014 8:05 AM
To: HTTP Working Group
Subject: 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 16:06:01 UTC