- From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
- Date: Fri, 21 Feb 2014 17:52:35 +0200
- To: Cory Benfield <cory@lukasa.co.uk>
- Cc: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
On Fri, Feb 21, 2014 at 02:45:13PM +0000, Cory Benfield wrote: > On 21 February 2014 14:36, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> wrote: > > We have 17 implementations so far. Are there anyone who use debug field in > > GOAWAY in a meaningful way? > > Of course, if someone has a philosophical reason to remove it or keep > it in I'll happily defer to their wisdom. Well, there are a lot of uses of GOAWAY(PROTOCOL_ERROR). It could be helpful to know which was violated when debugging an implementation. Seraching PROTOCOL_ERROR from spec turns up that receiving anything of following will cause GOAWAY(PRTOCOL_ERROR): - Frame of unknown type. - Anything except PRIORITY or RST_STREAM in reserved (local). - Anything except HEADERS or RST_STReAM in reserved (remote). - Anything(?) signficantly after stream close (MAY). - Frame in unexpected state. - Frame opening stream with stream not greater than all previous. - Frame with PAD_HIGH,!PAD_LOW. - DATA frame on stream 0. - Frame with more padding than size. - Anything except CONTINUATION with active header block. - Anything on another stream with active header block. - HEADERS on stream 0. - PRIORITY on stream 0. - RST_STREAM on stream 0. - RST_STREAM on idle stream. - SETTINGS on stream other than 0. - "Badly formed or incomplete" SETTINGS. - PUSH_PROMISE with pushing disabled. - SETTINGS_ENABLE_PUSH anything except 0 or 1. - SETTINGS with unknown setting. - PUSH_PROMISE associated with stream 0. - PUSH_PROMISE associated with stream not open down. - PUSH_PROMISE promising non-idle stream. - PING on stream other than 0. - GOAWAY on stream other than 0. - CONTINUATION without active header block. - PUSH_PROMISE on server. - SETTINGS from server that enables pushing. Then there's RST_STREAM(PROTOCOL_ERROR), but it is only used in one place, namely receiving incomplete or with invalid method PUSH_PROMISE. -Ilari
Received on Friday, 21 February 2014 15:52:59 UTC