🙆♀️
【Python】hpack で HTTP/2 ヘッダーを圧縮する
HTTP/2 クライアントの Hyper のもとで開発されている hpack を使って HTTP/2 ヘッダーを圧縮してみよう。pip では次のコマンドでインストールできる。
pip install hpack
Debian の場合、システム全体で利用するには python3-hpack
を導入する
sudo apt install python3-hpack
コードを書いてみる
# https://github.com/python-hyper/hpack/blob/master/test/test_hpack.py
from hpack import (
Encoder,
Decoder
)
header_set = [
(':method', 'GET', True),
(':path', '/jimiscool/', True),
('customkey', 'sensitiveinfo', True)
]
header_set2 = [
(':method', 'GET'),
(':path', '/jimiscool/'),
('customkey', 'sensitiveinfo')
]
result = (b'\x82\x14\x88\x63\xa1\xa9' +
b'\x32\x08\x73\xd0\xc7\x10' +
b'\x87\x25\xa8\x49\xe9\xea' +
b'\x5f\x5f\x89\x41\x6a\x41' +
b'\x92\x6e\xe5\x35\x52\x9f')
e = Encoder()
d = Decoder()
assert e.encode(header_set, huffman=True) == result
assert d.decode(result) == header_set2
Discussion