Copyright (C) 2016 greenbytes GmbH
While you read this, the beautiful people from Apache httpd dev team are busy putting together the next 2.4 realease which - knock on wood - will be 19! While chilling from the last several-day race condition hunt, I thought I'd give you a short overview what will come.
Since 2.4.18 there have been very important stability improvements done to the module. Many, many thanks to the people who helped out analyzing this, among them Frank Stolle, Mark Nottingham and Bernard Spil. Thank them, buy them beer!
The fixes in no particular order and without guarantuee of completeness:
GOAWAYframe when Apache closes a HTTP/2 connection. Before, this was not true for keepalive connections and the next request for some client just failed.
Server pushes now correctly forward the
Content-Encoding header from a client, so that compression
is available on pushed resources.
Each connection has not a diary where pushes are recorded, so that the same resource is not PUSHed twice
on the same connection. This diary can be preset by a client using a
Cache-Digest header. This
follows a proposal from Kazuho Oku
and is, so far, highly experimental. The spec will probably change quite a bit and browser implementers will
have a word or two on this as well, but it's very interesting.
There is also discussion on
Link headers and if using
preload for HTTP/2 PUSHes
is a good idea or not. Following a proposal from Ilya Grigorik, mod_http2 now respects the
parameter on preload links. Guess what it does?
The module now gives some information in the Apache scoreboard, also known as
will see the protocol chosen for each connection and, for HTTP/2 connection, you can see how many streams
have been processed, are open, etc.
Additionally, you can configure a
http2-status page that shows more details on the current
connection. You configure this as
<Location "/http2-status"> SetHandler http2-status </Location>If you have a connection open and request that resource, you get statistics about frames, bytes, resets, pushes, push diary, etc.
Also, the environment variables
H2PUSH have been added. The first is
on for a HTTP/2 connection. The latter is
on when pushing resources is
supported on the connection.
And, last but not least, I have been working on a
mod_proxy_http2 that will bring HTTP/2
goodies to backend connections. It is not clear if it will make it into the next 2.4 release, as it
is very young. But so once was mod_http2...
Stefan Eissing, greenbytes GmbH
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. See LICENSE for details.