- From: Alcides Viamontes E <alcidesv@shimmercat.com>
- Date: Thu, 28 Jul 2016 16:55:42 +0200
- To: Stefan Eissing <stefan.eissing@greenbytes.de>
- Cc: Cory Benfield <cory@lukasa.co.uk>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAAMqGzbxSQaM7fMcku-YHb+T0uBZprYEvaeTwnN3vxvg9mXm4w@mail.gmail.com>
This is a nice debugging asset! But looking forward to a more generic mechanism that could be used leveraged by application servers and by web-applications, it could be possible to just leverage the "Forwarded" HTTP extension (RFC 7239). We do something like that for some bits and pieces : https://www.shimmercat.com/en/info/articles/forwarded-header/ On Thu, Jul 28, 2016 at 4:00 PM, Stefan Eissing < stefan.eissing@greenbytes.de> wrote: > Thanks, Cory!. Apache will offer this as a configurable handler and I will > make a beta available via github soon. Currently outputs lacks individual > streams and looks like this: > { > "settings": { > "SETTINGS_MAX_CONCURRENT_STREAMS": 100, > "SETTINGS_MAX_FRAME_SIZE": 16384, > "SETTINGS_INITIAL_WINDOW_SIZE": 65535, > "SETTINGS_ENABLE_PUSH": 1 > }, > "connFlowIn": 2147483647, > "connFlowOut": 12571993, > "sentGoAway": 0, > "in": { > "requests": 63, > "resets": 0, > "frames": 134, > "octets": 3831 > }, > "out": { > "responses": 62, > "frames": 130, > "octets": 13754 > }, > "push": { > "cacheDigest": "AQib_wA", > "promises": 1, > "submits": 1, > "resets": 0 > } > } > > -Stefan > > > Am 28.07.2016 um 14:38 schrieb Cory Benfield <cory@lukasa.co.uk>: > > > > All, > > > > During the HTTP workshop earlier this week, several HTTP/2 implementers > expressed a desire to extract information about the state of the H2 > connection from the perspective of their peer. This would be extremely > useful when developing, debugging, and testing implementations: given that > HTTP/2 is so highly stateful the vast majority of interoperability issues > come from implementations disagreeing about what the state of the > connection is (usually flow control windows!). > > > > Brad Fitzpatrick and I ended up prototyping a sample approach for > getting this information out of server implementations, based on issuing a > GET request to a specific well-known URI. This GET would return a JSON > document that contains various different pieces of information from inside > the implementation, such as window sizes and stream states. In addition, to > help debug flow control concerns, the response headers also include > information about flow control windows (because if a server believes it is > blocked behind flow control it can’t send the JSON document, but it can > send the response headers). Examples of this behaviour are available at > https://http2.golang.org/.well-known/h2interop/state and > https://shootout.lukasa.co.uk/.well-known/h2interop/state. > > > > The consensus amongst the implementers we spoke to were that this was a > good idea, and it would be good to collaborate on the information that > should be exposed here. For most HTTP/2 implementers one of the most > natural ways to collaborate on something like this is to use an Internet > Draft. For that reason, I have submitted the outline of a draft that > essentially defines what Brad and I have already done. You can find this > draft here: > https://tools.ietf.org/html/draft-benfield-http2-debug-state-00 > > > > I have no expectation that this will become a WG document. However, I’d > like to bring it to the attention of the working group to ensure that as > many implementers as possible can provide feedback on whether this kind of > approach is valuable or not, and what information they’d like made > available in this kind of mode. > > > > For anyone who wants to contribute, raise issues, or otherwise help with > the draft, it is hosted on GitHub: > https://github.com/python-hyper/draft-http2-debug-state. Issues and pull > requests are more than welcome, as is feedback on this list. > > > > Thanks, > > > > Cory > > > -- Alcides Viamontes E. Chief Executive Officer, Zunzun AB (+46) 722294542 (www.shimmercat.com is a property of Zunzun AB)
Received on Thursday, 28 July 2016 14:56:12 UTC