8238270: java.net HTTP/2 client does not decrease stream count when receives 204 response

Chris Hegarty chris.hegarty at oracle.com
Wed Apr 15 18:46:15 UTC 2020


> On 15 Apr 2020, at 18:17, Daniel Fuchs <daniel.fuchs at oracle.com> wrote:
> 
> Hi Chris,
> 
> On 15/04/2020 17:40, Chris Hegarty wrote:
>> It is allowable for a HEADERS frame to carry an END_STREAM,
>> but not an END_HEADERS. If this happens, then CONTINUATION
>> frames must follow, the last of which will carry END_HEADERS.
>> That probably explains why the END_STREAM handling is done
>> the way that it is.
> 
> That does not make sense. If there is END_STREAM there cannot
> be any continuation frames since the stream will be closed.

From section 6.2 - HEADERS: 

   END_STREAM (0x1):  When set, bit 0 indicates that the header block
      (Section 4.3 <https://tools.ietf.org/html/rfc7540#section-4.3>) is the last that the endpoint will send for the
      identified stream.

      A HEADERS frame carries the END_STREAM flag that signals the end
      of a stream.  However, a HEADERS frame with the END_STREAM flag
      set can be followed by CONTINUATION frames on the same stream.
      Logically, the CONTINUATION frames are part of the HEADERS frame.

-Chris.

[1] https://tools.ietf.org/html/rfc7540#section-6.2

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/net-dev/attachments/20200415/1f2f38d0/attachment.htm>


More information about the net-dev mailing list