Re: HTTP/2, "h2t" and protocol identifiers in general

On Mar 3, 2014 9:00 PM, "Roberto Peon" <grmocg@gmail.com> wrote:
>
> We currently have a number of application-layer applications that we
might want to use, a number of protocols, a number of transports, and at
least two levels of 'security'.
> {http,ws}/{tls/,}{tcp, udp}/ip
>
> This is already 8 combinations. If we add another application-layer
protocol and another transport (sctp for instance), we're up to 18...
>
> If goodness forbid, we find some need to specify schemes, this becomes
more ludicrous.
> If we're even thinking about going any length down this road, then we
need to at least reserve the capability to do something reasonable about
this.

The goal of Alt-Svc as I understand it is to specify different ways to
access an identical service. These could be as simple as a different ip
address for a multi-interface server, to a completely different protocol
stack (eg. http1/tcp/ip4 -> h2/tls/tcp/ip6). It's important to note that
http/1.1 and h2 are interchangeable only at the transport level, because
the higher semantic parts (the "scheme", as we seem to be calling it) are
the same. Changing the scheme means changing the way we can interact with a
resource means changing the service.

The current proposal for describing an Alt-Svc protocol stack seems to be
something like:

1. ip version (implied by the value of the address given)
1b. ip address
2. "tcp"
2b. tcp port
3. everything else, using ALPN

We can eliminate tcp-vs.-udp(-vs.whatever) from the ALPN token by adding an
explicit field to Alt-Svc to differentiate that layer. This means another
registry of protocol identifiers, which might be beyond this wg, but there
it is.

I think we're safe with ip(4/6)... Unless anyone wants to suggest we allow
IPX or RIP there? Maybe IPsec?

If "everything else" is leveraging ALPN's existing identifier registry,
that registry had better be able to handle all the options we require. So
far those seem to be: http1(+TLS?), http2, http2+TLS, websockets, and
ws+TLS.

Five doesn't seem so bad. Incidentally, if TCP goes away, I'm altering my
preferences for tokens to:

1. 'h2' and 'h2tls', or
2. 'h2c' (=cleartext) and 'h2'

Received on Monday, 3 March 2014 19:58:58 UTC