- From: Erik Nygren <erik@nygren.org>
- Date: Fri, 10 Jul 2015 10:15:08 -0400
- To: Amos Jeffries <squid3@treenet.co.nz>
- Cc: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
- Message-ID: <CAKC-DJhNoJAj_CB7N4jPmPdUhag6Lx_CHxiFFQRTPSNqLKq5hQ@mail.gmail.com>
As also discussed in the thread on passing IP addresses, a common implementation pattern seems to be to bolt an HTTP/2 demuxer in front of an HTTP/1.x server, sometimes with them communicating such that the HTTP/1.x server isn't seeing the HTTP/2 communications internals. What I was wondering is how people implementing this way pass along the URI elements. :method, :path, and :authority have clear things to translate into, but :scheme does not. Not handling this properly is likely an implementation bug, but I suspect it will be a common bug. Erik On Fri, Jul 10, 2015 at 6:44 AM, Amos Jeffries <squid3@treenet.co.nz> wrote: > On 10/07/2015 4:41 p.m., Erik Nygren wrote: > > Out of curiosity, how have current demuxer implementations been handling > > and passing the :scheme along? It may be that many implementations > > are ending up in the same situation as http/1.1 here... > > Why would it be a problem for demuxers? > > * HTTP is stateless. > * Messages are self-descriptive. > * Annd RFC 7540 section 8.1.2.3 says: > " > All HTTP/2 requests MUST include exactly one valid value for the > :method, :scheme, and :path pseudo-header fields > " > ... with :authority being mandatory except in certain edge cases where > there is no domain:port applicable to the message. > > > Thus HTTP/2 messages contain all parts of an absolute-URI in their > pseudo-headers. There is intentionally zero ambiguity now about what the > message means. Gone is the HTTP/1 scheme == transport protocol type > linkage. > > Amos > > >
Received on Friday, 10 July 2015 14:15:36 UTC