W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2013

Design Issue: Merge RST_STREAM and GOAWAY into a single ERROR frame type

From: James M Snell <jasnell@gmail.com>
Date: Fri, 3 May 2013 13:04:12 -0700
Message-ID: <CABP7RbeJm-AKxU3qGxt2tCGrb0xCQL8njNyEToA7Ln9gS8hnTQ@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
As a simplification, I'd like to suggest that we merge the RST_STREAM
and GOAWAY frames into a single ERROR frame with the following
definition:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Error Code (32)                          |
+---------------------------------------------------------------+
|X|                  Last-Stream-ID (31)                        |
+-+-------------------------------------------------------------+

(note that this flips the field order from the GOAWAY frame)

A frame-specific GOAWAY flag bit (0x2) would be defined for the frame,
and the Last-Stream-ID field would only be included in the frame data
if this flag was set.

This does a couple of things for us:

1. It simplifies the error handling and reduces the number of core frame types.
2. It allows us to terminate a stream and terminate the session in a
single frame if necessary
3. It gives us a way of reporting non-terminal session errors
(currently RST_STREAM is forbidden to use stream id #0 and GOAWAY is
always terminal).
Received on Friday, 3 May 2013 20:05:00 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:14:11 UTC