apache2 mod_http2のhttp2-status

HTTP/2のデバック用情報エンドポイントの仕様
http://d.hatena.ne.jp/ASnoKaze/20160907/1473180491


HTTP/2デバッグ用エンドポイントの仕様が議論されており、mod-h2のhttp2-statusの出力もそれに準拠するようになりました(2016/09/07)


mod_http2の1.2.0で新しく、Cache Digests for HTTP/2やhttp2-statusといった機能が実装されました。

Apache 2.4.19でこれらの機能が使用出来るようになります。


今回は、http2-statusを試してみる。
http2-statusは、そのURLを叩いたHTTP2コネクションの情報を表示するページになります。取れる情報は記事最後に例を示しました。


このページにxhrして、サーバに投げなおせば情報が集められそうです。

ビルド

(適当...必要なパッケージはインストールしておく)
http://d.hatena.ne.jp/ASnoKaze/20151016/1445011720 なども参考に

svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x
./buildconf 
./configure --enable-http2  --with-included-apr
make
sudo make install
設定

/usr/local/apache2/conf/httpd.conf

  Protocols h2 http/1.1
  H2ModernTLSOnly off

  <Location "/http2">
    SetHandler http2-status
  </Location>


起動

sudo /usr/local/apache2/bin/httpd
結果

https://localhost/http2 にアクセスする。

ページに、こんな感じでリクエストをしたコネクションに関する情報が表示されます。
(HTTP/1.1ではアクセスしても情報は表示できません)

{
  "HTTP2": "on",
  "H2PUSH": "on",
  "mod_http2_version": "1.2.2",
  "session_id": 9,
  "streams_max": 100,
  "this_stream": 9,
  "streams_open": 1,
  "max_stream_started": 9,
  "requests_received": 5,
  "responses_submitted": 4,
  "streams_reset": 0, 
  "pushes_promised": 0,
  "pushes_submitted": 0,
  "pushes_reset": 0,
  "cache_digest": "AQg",
  "cache_digest^2": "AQg",
  "frames_received": 8,
  "frames_sent": 11,
  "bytes_received": 458,
  "bytes_sent": 2087
}