12月15日、VOYAGE GROUP様の会議室で http2.0 ミニハッカソン #2が行われました。
恐れ多くも参加してきましたが、端っこのほうでひっそりしていました。
議論は最新仕様についての知識共有と、実装方法の話がメインだったかと思います。
よくプロトコル実装中にありがちな感じのホワイトボード。
HPACK draft 05
前回のミニハッカソンと同様、議論の中心はヘッダ圧縮の仕組みであるHPACKでした。
HTTP2.0を実装する上で最初の砦になるのがHPACKです。ヘッダを構成・解釈出来なければHTTPの通信はままなりません。
HPACK draft 05では、3つの手法を用いてヘッダの転送量を減らしています
- ハフマン符号を用いて文字列を表現する
- static tableとheader tableを用いてヘッダを表現する
- 一度送ったヘッダとの差分のみ転送する
ヘッダを構成・解釈するためにこれらの機能が必要になるわけです(全て実装しなければイケない訳でもないですが)
HPACKの実装に関しては、tsujikawa先生の HTTP/2.0 ヘッダー圧縮エンコーダーを簡単に書くには ? が紹介されていました。
また、draft 05で新しく加わったreference setを空にする手法も議論されていた。
Test
毎回ミニハッカソンではテストケースを用いて相互接続のテストを行っています。このテストケースもgithubで公開されており(https://github.com/Jxck/hpack-test-case)、だれでもHPACKのエンコード・デコードの確認が行えます。
これがあると非常に開発がしやすくなります。
主にこんな感じのハッカソンでした。その他にもHeader Field Orderingなど色々な雑談が有り、沢山勉強になりました。楽しかったです。また、是非宜しくお願いします。