HTTP2のHPACKにおけるEOSの使い方
http://syucream.github.io/hpack-spec-ja/header-compression-10-ja.html
5.2 文字列リテラル表現
ハフマンエンコードされたデータは常にオクテット境界で終わる わけではないので、その後に次のオクテット境界までパディングが挿入されます。このパディングが文字列リテラルの一部だと誤認 されることを防ぐため、符号の最上位ビットに EOS(end-of-string) に対応するシンボルが使用されます。
EOS シンボルのコードの 最上位ビットに対応しないパディングはデコードエラーとして 扱われなければなりません (MUST) 。
の記述ですが、
「符号の最上位ビットに EOSに対応するシンボルを使用する」とは具体的にどのように行うのですか?
次のリテラルをハフマンコーディングする場合、
www.example.com
wは「1111000」なので、「1111 0001 1110 0011 1100 0」のように連結していき、最終的に
11110001  f1
11100011  e3
11000010  c2
11100101  e5
11110010  f2
00111010  3a
01101011  6b
10100000  a0
10101011  ab
10010000  90
11110100  f4
1    ff
になります。
最後のオクテットは中途半端な7ビットを1でパディングしています。
このリテラル文字列のレングスはHビットを立てて12で「8c」。
この中で「符号の最上位ビットに EOSに対応するシンボルを使用する」行為はどこになりますか?
該当箇所の原文
As the Huffman encoded data doesn't always end at an octet boundary,
some padding is inserted after it, up to the next octet boundary.To prevent this padding to be misinterpreted as part of the string
literal, the most significant bits of the code corresponding to the
EOS (end-of-string) symbol are used.