1xx (informational) responses affect on stream management

In section 8.1 it describes a HTTP message with the following:

   1.  for a response only, zero or more HEADERS frames (each followed
       by zero or more CONTINUATION frames) containing the message
       headers of informational (1xx) HTTP responses (see [RFC7230],
       Section 3.2 and [RFC7231], Section 6.2), and

   2.  one HEADERS frame (followed by zero or more CONTINUATION frames)
       containing the message headers (see [RFC7230], Section 3.2), and

The issue I have with this is that #1 requires interpretation of the HEADERS payload to correctly transition the state of the stream receiving that frame since the status code has to be found to determine whether this is an informational response or not.  As far as I can tell this is the first time the stream state has been affected by the payload of the frames.

Currently I'm able to do all of my stream state management/transitions without having to do any interpretation of the payload.  With draft-14 I now need to know what is in the payload, so that the stream can correctly identify what subsequent frames are allowed.  In my mind this crosses a layer boundary.

I purpose that we add a new flag to the HEADERS frame that indicates whether this is an informational HEADERS frame or the final HEADERS (status-code) frame.  With this, section 8.1 could be described without any interpretation of the payload allowing stream states to be managed based purely on the frame.

Thanks,

Matthew

Received on Tuesday, 5 August 2014 18:05:40 UTC