パケットから直接 HTTP データを解析しています (TCP が再構築されているかどうかに関係なく、そうであると想定できます)。
HTTP をできるだけ正確に解析するための最良の方法を探しています。
ここでの主な問題は、HTTP ヘッダーです。
HTTP/1.1の基本的なRFC を見ると、HTTP ヘッダーの解析が複雑になるようです。RFC では、ヘッダーのさまざまな部分の非常に複雑な正規表現について説明しています。
HTTP ヘッダーのさまざまな部分を解析するには、これらの正規表現を作成する必要がありますか?
これまでに書いた HTTP ヘッダーの基本的な解析は、一般的な HTTP ヘッダー用です。
message-header = field-name ":" [ field-value ]
また、セクション 4.2 で説明したように、内部をカンマ区切りの値に置き換えLWS
、繰り返しSP
ヘッダーを同じものに置き換えました。field-name
ただし、たとえばセクション 14.9 を見ると、さまざまな部分を解析するfield-value
には、はるかに複雑な解析スキームが必要であることがわかります。
field-value
パーサーのユーザーに HTTP のすべての機能を提供し、HTTP のすべての部分を解析したい場合、HTTP 解析の複雑な部分 (特に ) をどのように処理する必要があると思いますか?
このための設計提案も高く評価されます。
ありがとう。