tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Thomas <>
Subject HTTP/2 progress report
Date Wed, 08 Apr 2015 21:56:32 GMT
As of r1672190 we now have the following:

- ALPN support in tc-native trunk
- The ability to register upgrade protocol implementations that will:
  - be included in the ALPN negotiation
  - cause processing to be passed to a protocol dedicated processor
    implementation once ALPN negotiation completes

I have tested this with h2 and it works - up until the point where
processing passes to the HTTP/2 processor. Since that processor is only
a dummy implementation the connection dies at that point.

This is intended to be extensible. If, for example, WebSocket is added
to the IANA registry for ALPN (I'm not sure if it will be or not) then
it should be relatively simple to add the plumbing to Tomcat to make
that work.

I'm still thinking where about in the processing chain to insert the
check for HTTP upgrade. It could be as early as the Adapter or as late
as the ContextContextValve.

I have been considering refactoring WebSocket to use this new HTTP
upgrade process - whatever it becomes - but I think - on balance - it
makes sense not to. They are fundamentally different.
- HTTP upgrade for h2c happens irrespective of the URL being requested.
- HTTP upgrade for WebSocket only happens if the upgrade request is for
a valid URL.

Given this, I am leaning towards the new HTTP upgrade mechanism (the one
that will be used by h2c) being earlier rather than later in the
processing chain.

Next steps are:
- start to flesh out the Http2Processor implementation
- provide a 1.2.0-dev build of tc-native for Windows (assuming folks
want one and can't built it themselves)


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message