0

ネットワークからキャプチャされた http データを含むバッファを持つプログラムがあります。バッファーには、http ヘッダーと html の両方が含まれます。C プログラムを使用して、http ヘッダーを解析する方法はありますか? htmlにはあまり興味がありません。Regex HTTP header parsingに示されている他の例を見てきましたが、ヘッダーを単純に解析して各フィールドを提供できる既存のライブラリ (C で使用される) の使用を検討しています。

私の要件は次のとおりです。 - バッファをのぞいて、その http ペイロードかどうかを確認するには - その http ペイロードの場合は、正規表現パーサーを実行して http ヘッダーのすべてのフィールドを取得します。

私がチェックできるコードはありますか?誰かライブラリを知っていますか?

よろしく、 bgun

4

2 に答える 2

1

ライブラリhttp-parserはあなたに役立つはずです。

いくつかの単純な正規表現を解析したい場合は、非常に小さくて堅牢なC正規表現パーサーSLRE-超軽量正規表現ライブラリをお勧めします。これは、プロジェクトにリンクできる標準Cで記述された1つのヘッダーファイルと1つのソースファイルのみで構成されています。

これは、標準正規表現の非常に有用なサブセットをサポートします。

\d、、、(空白以外)、\w(0以上に一致)、\s(1以上に一致)、グループの場合。ネストされたグループをサポートしているとは思いませんが、私は常にそれらがなくてもうまくいくことができました。\S*+()

于 2013-02-20T03:34:44.403 に答える
0

http ペイロードの場合、最初の 5 文字は「HTTP/」である必要があります。それが応答の先頭でない場合は、http 応答ではないと見なすことができます。そうであり、ヘッダーだけを気にする場合は、最初の「\r\n\r\n」までデータを受信し続ける必要があります。そこから、ヘッダー名を値から分離する必要がある場合は、各行の最初のコロンを区切り記号として使用するだけです。

于 2013-02-19T05:31:57.487 に答える