HTTP2.0ミニハッカソンに参加してきました

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など色々な雑談が有り、沢山勉強になりました。楽しかったです。また、是非宜しくお願いします。