PythonでHTTP2のヘッダのHPACKをデコードする

提供: Python入門
移動: 案内検索
スポンサーリンク

PythonでHTTP2のヘッダのHPACKをデコードする方法を紹介します。hpackモジュールを利用します。

読み方

HPACK
えいち ぱっく
HTTP2
えいちてぃーてぃーぴー つー

概要

HPACKのデータをデコードするには hpack モジュールを利用します。

インストール

sudo pip install hpack

ソースコード

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © 2015 kaoru <kaoru@localhost>
#
import hpack
decoder = hpack.Decoder()
 
# sample data. seccon 2015 online ctf, flagment2
data = "88c3c24085f2b4b40e6f94dd82f5ed5a7fff63ff7feeb119b46a200fff3ffd0f0"\
    + "d023137c1c0bf4089f2b4e94d625abb513f0131000011000100000002666c6"\
    + "16720697320696e20686561646572"
print decoder.decode(data.decode('hex'))

実行例

$ python decode1.py
[(u':status', u'200'), (u'x-flag', u'SECCON{H++p2i5sOc0o|}'),
(u'content-length', u'17'), (u'x-http2-push', u'1'), (u'',
u'\x00\x01\x00\x00\x00\x02flag is in '), (u'if-modified-since', u'ader')]

関連項目




スポンサーリンク