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 }